code: @Override
      public Resource getPhyscalFile() {
  	if (physcalSource == null) {
  	    if (!mapping.hasPhysical()) {
  		return null;
  	    }
  	    Resource tmp = mapping.getPhysical().getRealResource(relPath);
  	    physcalSource = ResourceUtil.toExactResource(tmp);
  	    // fix if the case not match
  	    if (!tmp.getAbsolutePath().equals(physcalSource.getAbsolutePath())) {
  		String relpath = extractRealpath(relPath, physcalSource.getAbsolutePath());
  		// just a security!
  		if (relPath.equalsIgnoreCase(relpath)) {
  		    this.relPath = relpath;
  		    createClassAndPackage();
  		}
  	    }
  	}
  	return physcalSource;
      }
docs: return file object, based on physical path and realpath
  
  @return file Object