Package gw.lang.parser.coercers
Class MetaTypeToClassCoercer
- java.lang.Object
-
- gw.lang.parser.coercers.BaseCoercer
-
- gw.lang.parser.coercers.MetaTypeToClassCoercer
-
- All Implemented Interfaces:
ICoercer,IResolvingCoercer
public class MetaTypeToClassCoercer extends BaseCoercer implements IResolvingCoercer
-
-
Field Summary
-
Fields inherited from interface gw.lang.parser.ICoercer
MAX_PRIORITY
-
-
Constructor Summary
Constructors Constructor Description MetaTypeToClassCoercer()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ObjectcoerceValue(IType typeToCoerceTo, Object value)intgetPriority(IType to, IType from)booleanhandlesNull()static MetaTypeToClassCoercerinstance()booleanisExplicitCoercion()ITyperesolveType(IType target, IType source)This method should produce a more appropriately parameterized type for the given target type for this coercion.
-
-
-
Method Detail
-
coerceValue
public Object coerceValue(IType typeToCoerceTo, Object value)
- Specified by:
coerceValuein interfaceICoercer
-
isExplicitCoercion
public boolean isExplicitCoercion()
- Specified by:
isExplicitCoercionin interfaceICoercer
-
handlesNull
public boolean handlesNull()
- Specified by:
handlesNullin interfaceICoercer- Returns:
- true if this coercer knows how to handle the null value.
-
resolveType
public IType resolveType(IType target, IType source)
Description copied from interface:IResolvingCoercerThis method should produce a more appropriately parameterized type for the given target type for this coercion. This allows a coercion to communicate type information through the coercion process. An example is the MetaType-to-Class coercion. MetaType
should be interpreted as Class from a type inference perspective, so this give the coercer a chance to let the compiler know so. If no more appropriate inference type exists, this method should return the source type.
- Specified by:
resolveTypein interfaceIResolvingCoercer- Parameters:
target- type- Returns:
- a possibly more appropriately parameterized type or the source type if not
-
getPriority
public int getPriority(IType to, IType from)
- Specified by:
getPriorityin interfaceICoercer- Returns:
- a value between 0 and MAX_PRIORITY, inclusive that indicates the priority of this coercer when resolving overloaded methods. Typically a coercer should return 0, but coercers that have a high affinity between the target and coerced type, such as primitives, can have higher priorities.
-
instance
public static MetaTypeToClassCoercer instance()
-
-