package com.venky.swf.db.model.reflection.uniquekey; import java.util.Collection; import java.util.HashMap; import java.util.Map; import com.venky.swf.db.model.Model; import com.venky.swf.db.model.reflection.ModelReflector; public class UniqueKey<M extends Model> { public UniqueKey(Class<M> modelClass,String keyName){ this.modelClass = modelClass; this.keyName = keyName; } private final Class<M> modelClass; public Class<M> getModelClass() { return this.modelClass; } private final String keyName ; public String getKeyName() { return this.keyName; } public ModelReflector<M> getReflector() { return ModelReflector.instance(modelClass); } private Map<String,UniqueKeyFieldDescriptor<M>> fields = new HashMap<String, UniqueKeyFieldDescriptor<M>>(); public void addField(String field, boolean exportable, boolean allowMultipleRecordsWithNull) { UniqueKeyFieldDescriptor<M> ukfd = new UniqueKeyFieldDescriptor<M>(this,field); ukfd.setMultipleRecordsWithNullAllowed(allowMultipleRecordsWithNull); ukfd.setExportable(exportable); this.fields.put(field, ukfd); } public UniqueKeyFieldDescriptor<M> getDescriptor(String field) { return this.fields.get(field); } public int size(){ return fields.size(); } public Collection<UniqueKeyFieldDescriptor<M>> getFields(){ return fields.values(); } }