* @param metaValue a MetaValue
* @param metaType a MetaType
* @return true if the MetaValue is an instance of the MetaType, or false if not
*/
public static boolean instanceOf(MetaValue metaValue, MetaType metaType) {
MetaType valueType = metaValue.getMetaType();
if (valueType.isSimple() && metaType.isSimple())
return true;
else if (valueType.isEnum() && metaType.isEnum())
return true;
else if (valueType.isCollection() && metaType.isCollection())
return true;
else if (valueType.isArray() && metaType.isArray())
return true;
else if (valueType.isComposite() && metaType.isComposite()) {
return (valueType instanceof MapCompositeMetaType && metaType instanceof MapCompositeMetaType)
|| (!(valueType instanceof CompositeMetaType) && !(metaType instanceof CompositeMetaType));
} else if (valueType.isGeneric() && metaType.isGeneric())
return true;
else if (valueType.isTable() && metaType.isTable())
return true;
else if (valueType.isProperties() && metaType.isProperties())
return true;
else
return false;
}