Package org.anchoranalysis.feature.input
Class FeatureInputType
Object
FeatureInputType
Performs checks and aggregations on feature-input types are compatible with others
- Author:
- Owen Feehan
-
Method Summary
Modifier and TypeMethodDescriptionstatic Class<? extends FeatureInput> determineInputType(Class<? extends FeatureInput> inputType1, Class<? extends FeatureInput> inputType2) Finds a common input-type for two classes, throwing an exception if the two types aren't compatible.static <T extends FeatureInput>
Class<? extends FeatureInput> determineInputType(List<Feature<T>> list) Finds a common input-type for classes in the list, throwing an exception if any two types aren't compatible.static booleanisCompatibleWith(Class<? extends FeatureInput> sourceType, Class<? extends FeatureInput> otherType) Can these parameters be used with a particular feature?static Optional<Class<? extends FeatureInput>> prefer(Class<? extends FeatureInput> inputType1, Class<? extends FeatureInput> inputType2) Prefer to keep descriptor whose input-class is a sub-class rather than a super-class.static Class<? extends FeatureInput> Likeprefer(Class, Class)but accepts features directly as input.
-
Method Details
-
isCompatibleWith
public static boolean isCompatibleWith(Class<? extends FeatureInput> sourceType, Class<? extends FeatureInput> otherType) Can these parameters be used with a particular feature?- Parameters:
sourceType- type of input.otherType- type of other.- Returns:
- true iff the
sourceTypecan be used with an input ofotherType.
-
prefer
public static Optional<Class<? extends FeatureInput>> prefer(Class<? extends FeatureInput> inputType1, Class<? extends FeatureInput> inputType2) Prefer to keep descriptor whose input-class is a sub-class rather than a super-class.The order of the two
inputTypeparameters is irrelevant.- Parameters:
inputType1- first input-type.inputType2- second input-type.- Returns:
- the favored input-type of the two, or Optional.empty() if there is no compatibility.
-
prefer
Likeprefer(Class, Class)but accepts features directly as input.The order of the two
inputTypeparameters is irrelevant.- Parameters:
feature1- first-feature.feature2- second-feature.- Returns:
- the favored input-type of the two, or Optional.empty() if there is no compatibility.
-
determineInputType
public static Class<? extends FeatureInput> determineInputType(Class<? extends FeatureInput> inputType1, Class<? extends FeatureInput> inputType2) Finds a common input-type for two classes, throwing an exception if the two types aren't compatible.- Parameters:
inputType1- first input-type.inputType2- second input-type.- Returns:
- the favored input-type of the two.
- Throws:
AnchorFriendlyRuntimeException- if they aren't compatible types.
-
determineInputType
public static <T extends FeatureInput> Class<? extends FeatureInput> determineInputType(List<Feature<T>> list) Finds a common input-type for classes in the list, throwing an exception if any two types aren't compatible.- Type Parameters:
T- common parent input-type on the list (all elements in the list must have a input-type that sub-classes this).- Parameters:
list- list of features to determine a common input-type for.- Returns:
- the commin input-type.
- Throws:
AnchorFriendlyRuntimeException- if they are any two incompatible types.
-