public abstract class AbstractExtensionProducer<M extends IModel> extends JavaTypeManifold<M> implements IExtensionClassProducer
ExtensionManifold.
See ExtensionProducerSampleTypeManifold as a reference implementation.ResourceFileTypeManifold.CacheClearerARG_DUMP_SOURCE| Constructor and Description |
|---|
AbstractExtensionProducer() |
| Modifier and Type | Method and Description |
|---|---|
protected ResourceFileTypeManifold.CacheClearer |
createCacheClearer() |
protected abstract M |
createModel(String extensionClassName,
Set<IFile> files) |
protected abstract String |
deriveExtendedClassFrom(String extensionClassFqn) |
String |
findTopLevelFqn(String fqn)
Overridden because the file's fqn isn't really a type for this type manifold,
only the extension classes derived from the files are types this manifold produces.
|
Set<String> |
getExtendedTypes()
The set of extension classes this type manifold produces.
|
Set<String> |
getExtendedTypesForFile(IFile file)
The set of classes extended via {$code file}.
|
Set<String> |
getExtensionClasses(String extendedType)
The subset of extension classes this type manifold produces that extend
fqn |
protected abstract String |
getFileExt() |
protected Map<String,manifold.util.concurrent.LocklessLazyVar<M>> |
getPeripheralTypes() |
String[] |
getTypesForFile(IFile file) |
boolean |
handlesFileExtension(String fileExtension) |
void |
init(IModuleComponent moduleComponent) |
boolean |
isExtendedType(String fqn)
Does this type manifold produce extension class[es] for
fqn? |
boolean |
isInnerType(String topLevelFqn,
String relativeInner) |
protected abstract String |
makeExtensionClassName(String extendedClassFqn) |
RefreshKind |
refreshedFile(IFile file,
String[] types,
RefreshKind kind) |
getClassType, getContributorKind, getSourceKindclear, contribute, contribute, findFilesForType, getAdditionalTypes, getAllTypeNames, getContent, getInterface, getModel, getModule, getPackage, getTypeLoader, getTypeNameForFile, getTypeNames, handlesFile, init, init, isDuplicate, isPackage, isTopLevelType, isTypedoInit, doUninit, init, isInited, uninitclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitclear, contribute, findFilesForType, getAllTypeNames, getClassType, getContributorKind, getPackage, getSourceKind, getTypeLoader, getTypeNames, isPackage, isTopLevelType, isTypehandlesFilepublic void init(IModuleComponent moduleComponent)
init in interface ITypeManifoldinit in class ResourceFileTypeManifold<M extends IModel>protected abstract String getFileExt()
protected abstract M createModel(String extensionClassName, Set<IFile> files)
extensionClassName using filesprotected abstract String makeExtensionClassName(String extendedClassFqn)
extendedClassFqnprotected abstract String deriveExtendedClassFrom(String extensionClassFqn)
extendedClassFqnpublic String findTopLevelFqn(String fqn)
findTopLevelFqn in class ResourceFileTypeManifold<M extends IModel>protected ResourceFileTypeManifold.CacheClearer createCacheClearer()
createCacheClearer in class ResourceFileTypeManifold<M extends IModel>public RefreshKind refreshedFile(IFile file, String[] types, RefreshKind kind)
refreshedFile in interface IFileConnectedrefreshedFile in class ResourceFileTypeManifold<M extends IModel>public boolean handlesFileExtension(String fileExtension)
handlesFileExtension in interface IFileConnectedprotected Map<String,manifold.util.concurrent.LocklessLazyVar<M>> getPeripheralTypes()
getPeripheralTypes in class ResourceFileTypeManifold<M extends IModel>public boolean isInnerType(String topLevelFqn, String relativeInner)
isInnerType in class ResourceFileTypeManifold<M extends IModel>public boolean isExtendedType(String fqn)
IExtensionClassProducerfqn?isExtendedType in interface IExtensionClassProducerfqn - The fully qualified name of a type for which this manifold may produce an extension classfqnpublic Set<String> getExtensionClasses(String extendedType)
IExtensionClassProducerfqn getExtensionClasses in interface IExtensionClassProducerextendedType - The fully qualified name of a potentially extended typefqnpublic Set<String> getExtendedTypes()
IExtensionClassProducergetExtendedTypes in interface IExtensionClassProducerpublic String[] getTypesForFile(IFile file)
getTypesForFile in interface IFileConnectedgetTypesForFile in class ResourceFileTypeManifold<M extends IModel>public Set<String> getExtendedTypesForFile(IFile file)
IExtensionClassProducergetExtendedTypesForFile in interface IExtensionClassProducerfile - A resource file associated with this class producerCopyright © 2018. All rights reserved.