information-system-model/src/main/java/org/gcube/informationsystem/types/impl/properties/PropertyTypeDefinitionImpl....

30 lines
1.1 KiB
Java

package org.gcube.informationsystem.types.impl.properties;
import org.gcube.informationsystem.base.reference.properties.BaseProperty;
import org.gcube.informationsystem.types.impl.TypeDefinitionImpl;
import org.gcube.informationsystem.types.reference.TypeDefinition;
import org.gcube.informationsystem.types.reference.properties.PropertyTypeDefinition;
import com.fasterxml.jackson.annotation.JsonTypeName;
@JsonTypeName(value=PropertyTypeDefinition.NAME)
public final class PropertyTypeDefinitionImpl<P extends BaseProperty> extends TypeDefinitionImpl<P> implements PropertyTypeDefinition<P> {
/**
* Generated Serial Version UID
*/
private static final long serialVersionUID = 7532701373450638829L;
protected PropertyTypeDefinitionImpl() {
super();
}
public PropertyTypeDefinitionImpl(Class<P> clz) {
super(clz);
this.superClasses = retrieveSuperClasses(clz, BaseProperty.class, clz == BaseProperty.class ? null : BaseProperty.NAME);
if(PropertyTypeDefinition.class.isAssignableFrom(clz)) {
this.superClasses.add(TypeDefinition.class.getSimpleName());
}
}
}