001    package railo.runtime;
002    
003    import java.io.Serializable;
004    
005    import railo.commons.io.res.Resource;
006    
007    
008    /**
009     * represent a cfml source file
010     */
011    public interface SourceFile extends Serializable {
012    
013        /**
014             * return file object, based on physical path and realpath
015             * @return file Object
016             */
017            public Resource getPhyscalFile();
018    
019            /**
020         * @return return source path as String
021         */
022        public String getDisplayPath();
023    
024            /**
025             * @return returns the full classname (package and name) matching to filename (Example: my.package.test_cfm)
026             */
027            public String getFullClassName();
028    
029            /**
030             * @return returns the a classname matching to filename (Example: test_cfm)
031             */
032            public String getClassName();
033    
034            /**
035             * @return returns the a package matching to file (Example: railo.web)
036             */
037            public String getPackageName();
038    
039            /**
040             * @return returns a variable string based on realpath and return it
041             */
042            public String getRealPathAsVariableString();
043    
044            /**
045             * if the mapping physical path and archive is invalid or not defined, it is possible this method returns null
046         * @return base Resource
047         */
048            public Resource getResource();
049        
050    }