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(java.lang.String extensionClassName,
java.util.Set<IFile> files) |
protected abstract java.lang.String |
deriveExtendedClassFrom(java.lang.String extensionClassFqn) |
java.lang.String |
findTopLevelFqn(java.lang.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.
|
java.util.Set<java.lang.String> |
getExtendedTypes()
The set of extension classes this type manifold produces.
|
protected abstract java.util.Set<java.lang.String> |
getExtendedTypes(IFile file) |
java.util.Set<java.lang.String> |
getExtendedTypesForFile(IFile file)
The set of classes extended via {$code file}.
|
java.util.Set<java.lang.String> |
getExtensionClasses(java.lang.String extendedType)
The subset of extension classes this type manifold produces that extend
fqn |
protected abstract java.lang.String |
getFileExt() |
protected java.util.Map<java.lang.String,manifold.util.concurrent.LocklessLazyVar<M>> |
getPeripheralTypes() |
java.lang.String |
getTypeNameForFile(java.lang.String defaultFqn,
IFile file)
The type name[s] produced from a file from an extension producer are the names of the extension classes
|
java.lang.String[] |
getTypesForFile(IFile file) |
boolean |
handlesFileExtension(java.lang.String fileExtension) |
void |
init(IModule moduleComponent) |
boolean |
isExtendedType(java.lang.String fqn)
Does this type manifold produce extension class[es] for
fqn? |
boolean |
isInnerType(java.lang.String topLevelFqn,
java.lang.String relativeInner) |
protected abstract java.lang.String |
makeExtensionClassName(java.lang.String extendedClassFqn) |
RefreshKind |
refreshedFile(IFile file,
java.lang.String[] types,
RefreshKind kind) |
getClassType, getContributorKind, getSourceKindclear, contribute, contribute, findFilesForType, getAdditionalTypes, getAllTypeNames, getContent, getModel, getModule, getPackage, getTypeNames, handlesFile, init, isDuplicate, isPackage, isTopLevelType, isTypedoInit, doUninit, init, isInited, uninitclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaccept, clear, contribute, enterPostJavaCompilation, findFilesForType, getAllTypeNames, getClassType, getContributorKind, getModule, getPackage, getSourceKind, getTypeNames, isPackage, isTopLevelType, isTypehandlesFilecompile, isSelfCompile, parsegetInterfacepublic void init(IModule moduleComponent)
init in interface ITypeManifoldinit in class ResourceFileTypeManifold<M extends IModel>protected abstract java.lang.String getFileExt()
protected abstract M createModel(java.lang.String extensionClassName, java.util.Set<IFile> files)
extensionClassName using filesprotected abstract java.lang.String makeExtensionClassName(java.lang.String extendedClassFqn)
extendedClassFqnprotected abstract java.lang.String deriveExtendedClassFrom(java.lang.String extensionClassFqn)
extendedClassFqnpublic java.lang.String getTypeNameForFile(java.lang.String defaultFqn,
IFile file)
getTypeNameForFile in class ResourceFileTypeManifold<M extends IModel>public java.lang.String findTopLevelFqn(java.lang.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, java.lang.String[] types, RefreshKind kind)
refreshedFile in interface IFileConnectedrefreshedFile in class ResourceFileTypeManifold<M extends IModel>public boolean handlesFileExtension(java.lang.String fileExtension)
handlesFileExtension in interface IFileConnectedprotected java.util.Map<java.lang.String,manifold.util.concurrent.LocklessLazyVar<M>> getPeripheralTypes()
getPeripheralTypes in class ResourceFileTypeManifold<M extends IModel>public boolean isInnerType(java.lang.String topLevelFqn,
java.lang.String relativeInner)
isInnerType in class ResourceFileTypeManifold<M extends IModel>public boolean isExtendedType(java.lang.String fqn)
IExtensionClassProducerfqn?isExtendedType in interface IExtensionClassProducerfqn - The fully qualified name of a type for which this manifold may produce an extension classfqnpublic java.util.Set<java.lang.String> getExtensionClasses(java.lang.String extendedType)
IExtensionClassProducerfqn getExtensionClasses in interface IExtensionClassProducerextendedType - The fully qualified name of a potentially extended typefqnpublic java.util.Set<java.lang.String> getExtendedTypes()
IExtensionClassProducergetExtendedTypes in interface IExtensionClassProducerpublic java.lang.String[] getTypesForFile(IFile file)
getTypesForFile in interface IFileConnectedgetTypesForFile in class ResourceFileTypeManifold<M extends IModel>public java.util.Set<java.lang.String> getExtendedTypesForFile(IFile file)
IExtensionClassProducergetExtendedTypesForFile in interface IExtensionClassProducerfile - A resource file associated with this class producerprotected abstract java.util.Set<java.lang.String> getExtendedTypes(IFile file)
Copyright © 2021. All rights reserved.