Class SimilarityModelImpl
- java.lang.Object
-
- de.uni_trier.wi2.procake.similarity.impl.SimilarityModelImpl
-
- All Implemented Interfaces:
SimilarityModel
public class SimilarityModelImpl extends Object implements SimilarityModel
- Author:
- Rainer Maximini
-
-
Field Summary
-
Fields inherited from interface de.uni_trier.wi2.procake.similarity.SimilarityModel
COMPONENT, COMPONENT_KEY, LOG_CREATING_NEW_MEASURE_FAILED, LOG_INITIALIZATION_FAILED, LOG_NO_MODEL_READER_FOUND, LOG_READING_INITIAL_MODEL_FAILED, LOG_SIMILARITY_NAME_ALREADY_EXISTS, LOG_SIMILARITY_NAME_NOT_FOUND
-
-
Constructor Summary
Constructors Constructor Description SimilarityModelImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddParameter(String name, String value)Adds the given name and value to the similarity parameter list.voidaddSimilarityMeasure(SimilarityMeasure measure, String name)Newly createdSimilarityMeasures are not registered automatically.SimilarityMeasurecreateAndRegisterSimilarityMeasure(String uniqueName, String measureTemplateName, DataClass dataClass)Creates a newSimilarityMeasureand registersSimilarityMeasurecreateSimilarityMeasure(String name, DataClass dataClass)Creates a newSimilarityMeasurethat is not automatically registered.Map<String,String>getAllParameters()Returns a complete list of all parameters in the system.StringgetParameter(String name)The value with the given parameter name will be returned.String[]getPossibleSimilarityMeasureFor(DataClass dataClass)Computes all similarity measure that are possible for the given data class without any order.String[]getPossibleSimilarityMeasureFor(DataClass dataClass, String orderName)Computes all similarity measure that are possible for the given data class / order combination.SimilarityMeasuregetSimilarityMeasure(DataClass dataClass)Returns a suitable similarity measure for the given data class.SimilarityMeasuregetSimilarityMeasure(DataClass dataClass, String name)List<SimilarityMeasure>getSimilarityMeasures()SimilarityMeasure[]getSimilarityMeasures(DataClass dataClass)Retrieves all registeredSimilarityMeasures for the givenDataClass.String[]getSimilarityNamesFor(DataClass dataClass)booleanisDefaultSimilarityMeasure(SimilarityMeasure similarityMeasure)voidoverwriteMatchingDataClasses(Model oldModel)Checks for each measure if it contains aDataClassreference that is present in the given 'other' Model.voidregisterSimilarityMeasureTemplate(SimilarityMeasure measure)Add the similarity measure passed to thesimilarityMeasureTemplateCache.voidremoveParameter(String name)The parameter with the given name will be removed from the internal parameter-listSimilarityMeasureremoveSimilarityMeasure(DataClass dataClass, String name)Removes the similarity measure with the given name for the given data class.SimilarityMeasureremoveSimilarityMeasure(SimilarityMeasure sm)Removes the given similarity measure.SimilarityMeasurerenameSimilarityMeasure(DataClass dataClass, String oldName, String newName)Renames an already registeredSimilarityMeasure.voidsetDefaultSimilarityMeasure(DataClass dataClass, String measureName)TheRetrieveruses in general the defaultSimilarityMeasurethat can be defined with this method.
-
-
-
Method Detail
-
createAndRegisterSimilarityMeasure
public SimilarityMeasure createAndRegisterSimilarityMeasure(String uniqueName, String measureTemplateName, DataClass dataClass) throws NameAlreadyExistsException
Description copied from interface:SimilarityModelCreates a newSimilarityMeasureand registers- Specified by:
createAndRegisterSimilarityMeasurein interfaceSimilarityModel- Parameters:
uniqueName- a new unique name to identify the new measuremeasureTemplateName- Each similarity measure contains a static field "NAME" that contains the name of the similarity measure, e.g.,SMAggregateAverage.NAME. If this field does not exists, the similarity measure can not be instantiated.dataClass- TheDataClassfor that the similarity measure should be created.- Returns:
- The new
SimilarityMeasureor null if the name does not relate to a similarity * measure or the similarity measure does not fit to the data class - Throws:
NameAlreadyExistsException- is thrown if the given name is already defined for the data class.
-
overwriteMatchingDataClasses
public void overwriteMatchingDataClasses(Model oldModel)
Description copied from interface:SimilarityModelChecks for each measure if it contains aDataClassreference that is present in the given 'other' Model. If so, it replaces that reference.- Specified by:
overwriteMatchingDataClassesin interfaceSimilarityModel- Parameters:
oldModel- The Model whose dataclasses should be referenced
-
addSimilarityMeasure
public void addSimilarityMeasure(SimilarityMeasure measure, String name) throws NameAlreadyExistsException
Description copied from interface:SimilarityModelNewly createdSimilarityMeasures are not registered automatically. This must be done in this method whereby eachSimilarityMeasurean unique name for this dataClass is defined. The correspondingDataClassis already defined in the similarity measure.- Specified by:
addSimilarityMeasurein interfaceSimilarityModel- Parameters:
measure- the new similarity measurename- a new unique name- Throws:
NameAlreadyExistsException- is thrown if the given name is already defined for the data class.
-
createSimilarityMeasure
public SimilarityMeasure createSimilarityMeasure(String name, DataClass dataClass)
Description copied from interface:SimilarityModelCreates a newSimilarityMeasurethat is not automatically registered. The registration must be done with theSimilarityModel.addSimilarityMeasure(SimilarityMeasure, String)method.- Specified by:
createSimilarityMeasurein interfaceSimilarityModel- Parameters:
name- Each similarity measure contains a static field "NAME" that contains the name of the similarity measure, e.g.,SMAggregateAverage.NAME. If this field does not exists, the similarity measure can not be instantiated.dataClass- TheDataClassfor that the similarity measure should be created.- Returns:
- The new
SimilarityMeasureor null if the name does not relate to a similarity measure or the similarity measure does not fit to the data class
-
registerSimilarityMeasureTemplate
public void registerSimilarityMeasureTemplate(SimilarityMeasure measure) throws NameAlreadyExistsException
Add the similarity measure passed to thesimilarityMeasureTemplateCache. After this model has been initialized, the latter is populated with template objects for each of the standard measures available. Call this method to register an application-specific template.- Specified by:
registerSimilarityMeasureTemplatein interfaceSimilarityModel- Throws:
NameAlreadyExistsException- See Also:
SimilarityModel.registerSimilarityMeasureTemplate(SimilarityMeasure)
-
getSimilarityMeasures
public List<SimilarityMeasure> getSimilarityMeasures()
- Specified by:
getSimilarityMeasuresin interfaceSimilarityModel- Returns:
- all available similarity measures also including system similarity measures
-
isDefaultSimilarityMeasure
public boolean isDefaultSimilarityMeasure(SimilarityMeasure similarityMeasure)
- Specified by:
isDefaultSimilarityMeasurein interfaceSimilarityModel- Parameters:
similarityMeasure- The similarity measure- Returns:
- Returns true, if given measure is defined as default.
-
getSimilarityMeasure
public SimilarityMeasure getSimilarityMeasure(DataClass dataClass)
Description copied from interface:SimilarityModelReturns a suitable similarity measure for the given data class. Default measures are preferred over other suitable measures.- Specified by:
getSimilarityMeasurein interfaceSimilarityModel- Parameters:
dataClass- The data class for that a suitableSimilarityMeasureshould be retrieved.- Returns:
- A
SimilarityMeasurefor the given data class.
-
getPossibleSimilarityMeasureFor
public String[] getPossibleSimilarityMeasureFor(DataClass dataClass)
Description copied from interface:SimilarityModelComputes all similarity measure that are possible for the given data class without any order.- Specified by:
getPossibleSimilarityMeasureForin interfaceSimilarityModel- Parameters:
dataClass- The data class for that the availableSimilarityMeasures should be retrieved.- Returns:
- An array of available
SimilarityMeasurenames for the given data class.
-
getPossibleSimilarityMeasureFor
public String[] getPossibleSimilarityMeasureFor(DataClass dataClass, String orderName)
Description copied from interface:SimilarityModelComputes all similarity measure that are possible for the given data class / order combination. This does not includes similarity measures that are also possible without the order.- Specified by:
getPossibleSimilarityMeasureForin interfaceSimilarityModel- Parameters:
dataClass- The data class for that the availableSimilarityMeasures should be retrieved.orderName- The name of the similarity that should be used.- Returns:
- An array of SimilarityMeasure names for the given data class and order.
-
getSimilarityMeasure
public SimilarityMeasure getSimilarityMeasure(DataClass dataClass, String name)
- Specified by:
getSimilarityMeasurein interfaceSimilarityModel- Parameters:
dataClass- The data class for which the availableSimilarityMeasures should be retrieved.name- The name of the similarity that should be used.- Returns:
- The specified
SimilarityMeasure
-
getSimilarityMeasures
public SimilarityMeasure[] getSimilarityMeasures(DataClass dataClass)
Description copied from interface:SimilarityModelRetrieves all registeredSimilarityMeasures for the givenDataClass.- Specified by:
getSimilarityMeasuresin interfaceSimilarityModel- Parameters:
dataClass- The data class for that the registeredSimilarityMeasures should be retrieved.- Returns:
- An array of registered
SimilarityMeasures for the given data class. IfdataClassisnullan empty array will be returned.
-
getSimilarityNamesFor
public String[] getSimilarityNamesFor(DataClass dataClass)
- Specified by:
getSimilarityNamesForin interfaceSimilarityModel- Parameters:
dataClass- The data class for that the registeredSimilarityMeasurenames should be retrieved.- Returns:
- An array of names of the registered
SimilarityMeasures for the given data class.
-
removeSimilarityMeasure
public SimilarityMeasure removeSimilarityMeasure(DataClass dataClass, String name)
Description copied from interface:SimilarityModelRemoves the similarity measure with the given name for the given data class.- Specified by:
removeSimilarityMeasurein interfaceSimilarityModel- Parameters:
dataClass- The data class whos similarity measure should be removed.name- The name of the similarity measure that should be removed.- Returns:
- The removed similarity measure or null if the measure was not found.
-
removeSimilarityMeasure
public SimilarityMeasure removeSimilarityMeasure(SimilarityMeasure sm)
Description copied from interface:SimilarityModelRemoves the given similarity measure.- Specified by:
removeSimilarityMeasurein interfaceSimilarityModel- Parameters:
sm- The similarity measure that should be removed;- Returns:
- The removed similarity measure or null if the measure was not found.
-
renameSimilarityMeasure
public SimilarityMeasure renameSimilarityMeasure(DataClass dataClass, String oldName, String newName) throws NameAlreadyExistsException, NameNotFoundException
Description copied from interface:SimilarityModelRenames an already registeredSimilarityMeasure. If the defaultSimilarityMeasureis effected, the default one will be renamed too.- Specified by:
renameSimilarityMeasurein interfaceSimilarityModel- Parameters:
dataClass- The data clas for that the similiarity measure should be renamedoldName- the old similarity measure namenewName- the new similarity measure name- Returns:
- the renamed similarity measure
- Throws:
NameAlreadyExistsException- is thrown if the new name already exists for the data classNameNotFoundException- is thrown if now similarity with the old name for the data class can be found.
-
setDefaultSimilarityMeasure
public void setDefaultSimilarityMeasure(DataClass dataClass, String measureName) throws NameNotFoundException
Description copied from interface:SimilarityModelTheRetrieveruses in general the defaultSimilarityMeasurethat can be defined with this method. Therefore the data class and the similarity measure name must be defined.- Specified by:
setDefaultSimilarityMeasurein interfaceSimilarityModel- Parameters:
dataClass- TheDataClassfor that the defaultSimilarityMeasureshould be defined.measureName- The name of theSimilarityMeasure.- Throws:
NameNotFoundException
-
addParameter
public void addParameter(String name, String value)
Description copied from interface:SimilarityModelAdds the given name and value to the similarity parameter list. If the name is already used, the previous value will be overwritten with the given value.- Specified by:
addParameterin interfaceSimilarityModel- Parameters:
name- The name of the parametervalue- The value of the parameter
-
removeParameter
public void removeParameter(String name)
Description copied from interface:SimilarityModelThe parameter with the given name will be removed from the internal parameter-list- Specified by:
removeParameterin interfaceSimilarityModel
-
getParameter
public String getParameter(String name)
Description copied from interface:SimilarityModelThe value with the given parameter name will be returned.- Specified by:
getParameterin interfaceSimilarityModel- Returns:
- The requested value
-
getAllParameters
public Map<String,String> getAllParameters()
Description copied from interface:SimilarityModelReturns a complete list of all parameters in the system. This is a copy of the internal map, so modifications to this map do not harm the internal map.- Specified by:
getAllParametersin interfaceSimilarityModel- Returns:
-
-