aspoev.manager.schema
Class SchemaVersioningManager

java.lang.Object
  extended byaspoev.manager.schema.SchemaManager
      extended byaspoev.manager.schema.ClassVersioningManager
          extended byaspoev.manager.schema.SchemaVersioningManager

public class SchemaVersioningManager
extends ClassVersioningManager

A schema manager that handles schema evolution by creating different versions of the schema, where each schema version has a particular version of each class.


Field Summary
protected  VariableReferenceElement schemaExtentHandle
           
protected  SchemaVersion schemaVersion
           
protected  VariableReferenceElement schemaVersionHandle
           
protected  java.util.HashMap schemaVersions
           
 
Fields inherited from class aspoev.manager.schema.ClassVersioningManager
typeMap
 
Fields inherited from class aspoev.manager.schema.SchemaManager
defaultSchema, reassignedTypes, SCHEMA_EXTENT, substitutibleTypes
 
Constructor Summary
SchemaVersioningManager()
           
SchemaVersioningManager(SchemaVersion version)
           
 
Method Summary
 void addType(TypeReferenceElement newType)
          A leaf node.
 boolean compareTypes(TypeReferenceElement typeOne, TypeReferenceElement typeTwo)
          This method encapsulates the algorithm for type equality.
 void deprecateType(TypeReferenceElement removed)
           
 TypeReferenceElement getActiveVersion(TypeReferenceElement type)
          This method returns the version of the argument type that is active or preferred in the current context ('context' to be defined and evaluated by the schema manager).
 TypeReferenceElement getCurrentVersion(TypeReferenceElement type)
           
 SchemaVersion getSchemaVersion()
           
 boolean isWorkingVersion()
           
 void makeFinal()
           
 void setCurrentVersion(SchemaVersion schemaVersion)
           
 void setSchemaVersion(SchemaVersion version)
           
 TypeReferenceElement setTypeVersion(TypeReferenceElement newType)
           
 void startWorkingVersion()
           
 java.lang.String toString()
           
 
Methods inherited from class aspoev.manager.schema.ClassVersioningManager
bindType, getActiveType
 
Methods inherited from class aspoev.manager.schema.SchemaManager
alteredFieldReferenced, alteredMethodReferenced, assignableFrom, declareSubstitutable, fieldExposed, fieldOverridden, getEquivalentTypes, getReassignedType, getSchemaExtent, getSubstitutableTypes, getTypeExtent, isSubstitutibleFor, methodExposed, methodOverridden, print, reclassifyType, removedFieldReferenced, removedMethodReferenced, removeType, renamedMemberReferenced, renamedTypeReferenced, setSchemaExtent, transitionFrom, typeMismatch, unknownField, unknownMethod
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

schemaVersions

protected java.util.HashMap schemaVersions

schemaVersionHandle

protected VariableReferenceElement schemaVersionHandle

schemaExtentHandle

protected VariableReferenceElement schemaExtentHandle

schemaVersion

protected SchemaVersion schemaVersion
Constructor Detail

SchemaVersioningManager

public SchemaVersioningManager(SchemaVersion version)

SchemaVersioningManager

public SchemaVersioningManager()
Method Detail

addType

public void addType(TypeReferenceElement newType)
Description copied from class: ClassVersioningManager
A leaf node.

Overrides:
addType in class ClassVersioningManager

compareTypes

public boolean compareTypes(TypeReferenceElement typeOne,
                            TypeReferenceElement typeTwo)
Description copied from class: SchemaManager
This method encapsulates the algorithm for type equality. Returns 'true' if two argument types are equal, false otherwise. The default implementation compares the namespaces, names, and versions of the types and returns true if all three are equal.

Overrides:
compareTypes in class ClassVersioningManager

deprecateType

public void deprecateType(TypeReferenceElement removed)
Overrides:
deprecateType in class ClassVersioningManager

setSchemaVersion

public void setSchemaVersion(SchemaVersion version)

setTypeVersion

public TypeReferenceElement setTypeVersion(TypeReferenceElement newType)

getActiveVersion

public TypeReferenceElement getActiveVersion(TypeReferenceElement type)
Description copied from class: SchemaManager
This method returns the version of the argument type that is active or preferred in the current context ('context' to be defined and evaluated by the schema manager). Default implementation returns the most current version of the argument type which is present in the schema. Implementing strategies should override this method to reflect the appropriate type.

Overrides:
getActiveVersion in class SchemaManager

getSchemaVersion

public SchemaVersion getSchemaVersion()

getCurrentVersion

public TypeReferenceElement getCurrentVersion(TypeReferenceElement type)

isWorkingVersion

public boolean isWorkingVersion()

makeFinal

public void makeFinal()

startWorkingVersion

public void startWorkingVersion()

setCurrentVersion

public void setCurrentVersion(SchemaVersion schemaVersion)

toString

public java.lang.String toString()