code: @Override
  	public List<GigJavaProblem> validate(TypeDeclaration declaration,
  			IType type, CompilationUnit unit, String file)
  			throws JavaModelException {
  		List<GigJavaProblem> problems = new ArrayList<GigJavaProblem>();
  		int flags = type.getFlags();
  		
  		if (!Flags.isAbstract(flags)) {
  			if (!Flags.isPublic(flags)) {
  				GigJavaProblem problem = new GigJavaProblem(
  						Severity.ERROR, "Concrete Component class must be public", file);
  				ISourceRange range = type.getNameRange();
  				int offset = range.getOffset();
  				problem.setSourceStart(offset);
  				problem.setSourceEnd(offset + range.getLength() - 1);
  				problem.setSourceLineNumber(unit.getLineNumber(offset));
  				problems.add(problem);
  				return problems;
  			}
  		}
  		
  		return problems;
  	}
docs: /* (non-Javadoc)
  @see org.eiichiro.gig.eclipse.core.compiler.Validator#validate(org.eclipse.jdt.core.dom.TypeDeclaration, org.eclipse.jdt.core.IType, org.eclipse.jdt.core.dom.CompilationUnit, java.lang.String)