org.w3c.jigsaw.pagecompile
Class PageCompileFrame

java.lang.Object
  extended by org.w3c.tools.resources.AttributeHolder
      extended by org.w3c.tools.resources.Resource
          extended by org.w3c.tools.resources.FramedResource
              extended by org.w3c.tools.resources.ResourceFrame
                  extended by org.w3c.tools.resources.ProtocolFrame
                      extended by org.w3c.jigsaw.frames.HTTPFrame
                          extended by org.w3c.jigsaw.pagecompile.PageCompileFrame
All Implemented Interfaces:
java.lang.Cloneable, java.util.EventListener, AttributeChangedListener, FrameEventListener

public class PageCompileFrame
extends HTTPFrame


Field Summary
protected  Segment[] bodySegs
           
protected static GeneratedClassLoader classloader
           
protected  Segment[] classSegs
           
protected  Segment[] extendsSegs
           
protected  Segment[] implementsSegs
           
protected  Segment[] importSegs
           
 
Fields inherited from class org.w3c.jigsaw.frames.HTTPFrame
acceptRanges, allowed, ATTR_ALLOW_DEL, ATTR_BROWSABLE, ATTR_CHARSET, ATTR_CONTENT_ENCODING, ATTR_CONTENT_LANGUAGE, ATTR_CONTENT_LENGTH, ATTR_CONTENT_TYPE, ATTR_ICON, ATTR_ICONDIR, ATTR_INDEX, ATTR_INDEXES, ATTR_MAXAGE, ATTR_MD5, ATTR_PUTABLE, ATTR_QUALITY, ATTR_RELOCATE, ATTR_STYLE_LINK, ATTR_TITLE, browsetype, COND_FAILED, COND_OK, COND_WEAK, dresource, fresource, listing, listing_stamp, STATE_CONTENT_LOCATION
 
Fields inherited from class org.w3c.tools.resources.ResourceFrame
filterClass, frameListener, resource
 
Fields inherited from class org.w3c.tools.resources.FramedResource
ATTR_OID, attrListener, debugEvent, event_disabled, framesRef, structListener
 
Fields inherited from class org.w3c.tools.resources.Resource
ATTR_CONTEXT, ATTR_HELP_URL, ATTR_IDENTIFIER, ATTR_LAST_MODIFIED, ATTR_PARENT, ATTR_RESOURCE_FRAMES, ATTR_STORE_ENTRY, ATTR_URL, co, id
 
Fields inherited from class org.w3c.tools.resources.AttributeHolder
attributes, values
 
Constructor Summary
PageCompileFrame()
           
 
Method Summary
static boolean byteArrayNEquals(byte[] ba1, int off1, byte[] ba2, int off2, int n)
          Analogous to standard C's strncmp, for byte arrays.
protected  void checkContent(Request request)
           
protected  boolean classCompiled()
           
protected static void createClassLoader(java.io.File dir)
           
 GeneratedFrame generateFrame(Request request)
          Generate the frame.
protected  byte[] getClassDeclarationStatement()
           
protected  byte[] getClassEnd()
           
protected static GeneratedClassLoader getClassLoader()
           
protected  PageCompiler getCompiler()
           
protected  java.lang.String getFilePath()
           
protected  java.io.File getGeneratedClassFile()
           
protected  java.lang.String getGeneratedClassName()
           
protected  java.lang.String getGeneratedPackageName()
           
protected  byte[] getGetMethodDeclaration()
           
protected static GeneratedClassLoader getNewClassLoader()
           
protected  java.lang.String getPackagedClassName()
           
protected  byte[] getPackageStatement()
           
protected  PageCompileProp getPageCompileProps()
           
protected  byte[] getSegmentBytes(Segment seg)
           
protected  Segment[] parse()
           
protected  int parseType(byte[] unparsed, int startParam, int endParam)
           
 ReplyInterface perform(RequestInterface request)
          Makes sure that checkContent() is called on _any_ HTTP method, so that the internal representation of commands is always consistent.
protected  byte[] readUnparsed()
           
protected  void registerNewGeneratedFrame(Request request)
           
 void registerResource(FramedResource resource)
          Register the resource and add Properties in httpd.
protected  void separateSegments(Segment[] segments)
           
 
Methods inherited from class org.w3c.jigsaw.frames.HTTPFrame
addStyleSheet, attributeChanged, browse, checkExpect, checkIfMatch, checkIfModifiedSince, checkIfNoneMatch, checkIfUnmodifiedSince, checkRequest, checkValidators, computeContainerListing, computeETag, computeTrashDir, computeTrashFile, createDefaultReply, createFileReply, delete, deleteDirectoryResource, deleteFileResource, deleteMe, deleteOtherResource, extended, get, getAllow, getAllowDeleteFlag, getBrowsableFlag, getBrowseType, getCharset, getContentEncoding, getContentLanguage, getContentLength, getContentType, getDirectoryListing, getDirectoryResource, getDirectoryResource, getETag, getFileResource, getFileResource, getHelpURL, getHelpURL, getIcon, getIconDirectory, getIndex, getIndexes, getMaxAge, getMD5Flag, getOtherResource, getPutableFlag, getQuality, getRelocateFlag, getStyleSheetURL, getTitle, getURL, handleRangeRequest, head, headDirectoryResource, headFileResource, headOtherResource, initialize, link, lookup, lookupDirectory, lookupFile, lookupOther, lookupResource, options, performFrames, pickleValues, post, put, putFileResource, putOtherResource, registerOtherResource, setValue, trace, unlink, unsafeGetQuality, updateCachedHeaders
 
Methods inherited from class org.w3c.tools.resources.ResourceFrame
addFrameEventListener, eventDisabled, fireFrameEvent, frameModified, getFilters, getFilters, getFrameReference, getResource, getResourceReference, getSpaceEntry, getURLPath, lookupFilters, lookupFrames, postFrameEvent, processEvent, removeFrameEventListener, unregisterResource, updateDefaultChildAttributes
 
Methods inherited from class org.w3c.tools.resources.FramedResource
addAttributeChangedListener, addStructureChangedListener, collectFramesReference, delete, disableEvent, displayEvent, enableEvent, fireAttributeChangeEvent, fireStructureChangedEvent, fireStructureChangedEvent, frameAdded, frameRemoved, getClone, getFrame, getFrame, getFrameReference, getFrameReference, getFramesReference, getOid, initialize, markModified, notifyUnload, postAttributeChangeEvent, postEvent, postStructureChangedEvent, postStructureChangedEvent, registerFrame, registerFrameIfNone, removeAttributeChangedListener, removeStructureChangedListener, setSilentValue, setSilentValue, unregisterFrame
 
Methods inherited from class org.w3c.tools.resources.Resource
acceptUnload, checkMultipleLock, collectFrames, getContext, getFrame, getFrames, getIdentifier, getLastModified, getParent, getServer, getSpace, getStoreEntry, getValue, getValue, isInitialized, isUnloaded, setContext, setContext, setValue, unsafeGetContext, unsafeGetFrame, unsafeGetFrames, unsafeGetIdentifier, unsafeGetResourceReference, unsafeGetURLPath, unsafeGetValue, updateAttributes
 
Methods inherited from class org.w3c.tools.resources.AttributeHolder
definesAttribute, definesAttribute, getAttributes, getBoolean, getChar, getClone, getClone, getDouble, getFloat, getInt, getLong, getString, getValue, lookupAttribute, print, setBoolean, setChar, setDouble, setFloat, setInt, setLong, setString, setValue, unsafeDefinesAttribute, unsafeGetDouble, unsafeGetString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

classloader

protected static GeneratedClassLoader classloader

classSegs

protected Segment[] classSegs

importSegs

protected Segment[] importSegs

extendsSegs

protected Segment[] extendsSegs

implementsSegs

protected Segment[] implementsSegs

bodySegs

protected Segment[] bodySegs
Constructor Detail

PageCompileFrame

public PageCompileFrame()
Method Detail

getClassLoader

protected static GeneratedClassLoader getClassLoader()

createClassLoader

protected static void createClassLoader(java.io.File dir)

getNewClassLoader

protected static GeneratedClassLoader getNewClassLoader()

getPageCompileProps

protected PageCompileProp getPageCompileProps()

getGeneratedClassName

protected java.lang.String getGeneratedClassName()

getGeneratedPackageName

protected java.lang.String getGeneratedPackageName()

getPackagedClassName

protected java.lang.String getPackagedClassName()

getGeneratedClassFile

protected java.io.File getGeneratedClassFile()

classCompiled

protected boolean classCompiled()

getCompiler

protected PageCompiler getCompiler()

registerResource

public void registerResource(FramedResource resource)
Register the resource and add Properties in httpd.

Overrides:
registerResource in class HTTPFrame
Parameters:
resource - The resource to register.

readUnparsed

protected byte[] readUnparsed()
                       throws java.io.IOException
Throws:
java.io.IOException

byteArrayNEquals

public static final boolean byteArrayNEquals(byte[] ba1,
                                             int off1,
                                             byte[] ba2,
                                             int off2,
                                             int n)
Analogous to standard C's strncmp, for byte arrays. (Should be in some utility package, I'll put it here for now)

Parameters:
ba1 - the first byte array
off1 - where to start in the first array
ba2 - the second byte array
off2 - where to start in the second array
n - the length to compare up to
Returns:
true if both specified parts of the arrays are equal, false if they aren't .

parseType

protected int parseType(byte[] unparsed,
                        int startParam,
                        int endParam)

parse

protected Segment[] parse()

separateSegments

protected void separateSegments(Segment[] segments)

getPackageStatement

protected byte[] getPackageStatement()

getClassDeclarationStatement

protected byte[] getClassDeclarationStatement()

getFilePath

protected java.lang.String getFilePath()

getGetMethodDeclaration

protected byte[] getGetMethodDeclaration()

getClassEnd

protected byte[] getClassEnd()

getSegmentBytes

protected byte[] getSegmentBytes(Segment seg)

generateFrame

public GeneratedFrame generateFrame(Request request)
                             throws ResourceException,
                                    ProtocolException
Generate the frame.

Parameters:
request - the incomming request.
Throws:
ResourceException - if a fatal error occurs.
ProtocolException - if compilation failed

registerNewGeneratedFrame

protected void registerNewGeneratedFrame(Request request)
                                  throws ResourceException,
                                         ProtocolException
Throws:
ResourceException
ProtocolException

checkContent

protected void checkContent(Request request)
                     throws ResourceException,
                            ProtocolException
Throws:
ResourceException
ProtocolException

perform

public ReplyInterface perform(RequestInterface request)
                       throws ProtocolException,
                              ResourceException
Makes sure that checkContent() is called on _any_ HTTP method, so that the internal representation of commands is always consistent.

Overrides:
perform in class HTTPFrame
Parameters:
request - The HTTPRequest
Returns:
a ReplyInterface instance
Throws:
ProtocolException - If processing the request failed.
ResourceException - If this resource got a fatal error.