package com.venky.swf.db.model.reflection.uniquekey;
import java.lang.reflect.Method;
import com.venky.swf.db.model.Model;
import com.venky.swf.db.model.reflection.ModelReflector;
public class UniqueKeyFieldDescriptor<M extends Model> {
private final String fieldName ;
public String getFieldName() {
return this.fieldName;
}
private final ModelReflector<? extends Model> referredModelReflector;
public ModelReflector<? extends Model> getReferredModelReflector() {
return this.referredModelReflector;
}
public UniqueKeyFieldDescriptor(UniqueKey<M> key,String fieldName){
this.fieldName = fieldName;
Method fieldGetter = key.getReflector().getFieldGetter(fieldName);
Method referredModelGetter = key.getReflector().getReferredModelGetterFor(fieldGetter);
if (referredModelGetter != null){
Class<? extends Model> referredModelClass = key.getReflector().getReferredModelClass(referredModelGetter);
referredModelReflector = ModelReflector.instance(referredModelClass) ;
}else {
referredModelReflector = null;
}
}
private boolean multipleRecordsWithNullAllowed = true;
public void setMultipleRecordsWithNullAllowed(
boolean allowMultipleRecordsWithNull) {
this.multipleRecordsWithNullAllowed = allowMultipleRecordsWithNull;
}
public boolean isMultipleRecordsWithNullAllowed(){
return this.multipleRecordsWithNullAllowed;
}
private boolean exportable = true;
public boolean isExportable(){
return exportable;
}
public void setExportable(boolean exportable){
this.exportable = exportable;
}
}