adding doc
[mir.git] / source / mir / entity / adapter / EntityAdapterDefinition.java
index bb132a5..9c95ab3 100755 (executable)
@@ -32,45 +32,96 @@ package mir.entity.adapter;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
-import java.util.*;
+import java.util.HashMap;
 import java.util.Map;
+import java.util.TimeZone;
 
 import mir.entity.Entity;
+import mir.misc.StringUtil;
 import mir.util.GeneratorFormatAdapters;
-import mir.misc.*;
 
+/**
+ * <code>EntityAdapterDefinition</code> defines the fields for an entity adapter of
+ *  a particular "type". Custom calculated fields can be defined.
+ *
+ */
 public class EntityAdapterDefinition {
-  Map calculatedFields;
+  private Map calculatedFields;
 
   public EntityAdapterDefinition() {
     calculatedFields = new HashMap();
   }
 
+  /**
+   *
+   *
+   * @param anEntity the entity that will be wrapped by the entity adapter
+   * @param aModel the base model
+   * @return the resulting entity adapter
+   */
   public EntityAdapter makeEntityAdapter(Entity anEntity, EntityAdapterModel aModel) {
     return new EntityAdapter(anEntity, this, aModel);
   }
 
+  /**
+   *
+   * @param aFieldName
+   * @return the <code>CalculatedField</code> if it exists. <code>null</code> otherwise
+   */
   public CalculatedField getCalculatedField(String aFieldName) {
     return (CalculatedField) calculatedFields.get(aFieldName);
   }
 
+  /**
+   *
+   * @param aFieldName
+   * @return boolean true if aFieldName is a calculated Field
+   */
   public boolean hasCalculatedField(String aFieldName) {
     return calculatedFields.containsKey(aFieldName);
   }
 
+  /**
+   *
+   * @param aFieldName
+   * @param aField
+   */
   public void addCalculatedField(String aFieldName, CalculatedField aField) {
     calculatedFields.put(aFieldName, aField);
   }
 
+  /**
+   * To add a calculated field based on a "mir" date field: a string field of the form yyyyMMdd[hhmm]
+   *
+   * @param aDestinationFieldName
+   * @param aSourceFieldName
+   * @param aDefaultTimezone
+   */
   public void addMirDateField(String aDestinationFieldName, String aSourceFieldName, String aDefaultTimezone) {
     addCalculatedField(aDestinationFieldName, new MirDateField(aSourceFieldName, aDefaultTimezone));
   }
 
+  /**
+   * Adds a calculated field based on a db date field
+   *
+   * @param aDestinationFieldName the field name of the calculated field
+   * @param aSourceFieldName the field name of the entity (must be a date field)
+   * @param aDefaultTimezone the default timezone to use
+   */
   public void addDBDateField(String aDestinationFieldName, String aSourceFieldName, String aDefaultTimezone) {
     addCalculatedField(aDestinationFieldName, new DBDateField(aSourceFieldName, aDefaultTimezone));
   }
 
+  /**
+   * a calculated field: field gets its value from other fields.
+   */
   public interface CalculatedField {
+    /**
+     * Method to retrieve the calculated value of the field.
+     *
+     * @param anEntityAdapter the entity
+     * @return the value of the field.
+     */
     public Object getValue(EntityAdapter anEntityAdapter);
   }
 
@@ -86,7 +137,7 @@ public class EntityAdapterDefinition {
     public Object getValue(EntityAdapter anEntityAdapter) {
 
          Object result = null;
-         String textValue = anEntityAdapter.getEntity().getValue(fieldName);
+         String textValue = anEntityAdapter.getEntity().getFieldValue(fieldName);
          Calendar calendar = GregorianCalendar.getInstance();
          int year;
          int month;
@@ -125,7 +176,7 @@ public class EntityAdapterDefinition {
 
     public Object getValue(EntityAdapter anEntityAdapter) {
       Object result = null;
-      String text = anEntityAdapter.getEntity().getValue(fieldName);
+      String text = anEntityAdapter.getEntity().getFieldValue(fieldName);
 
       if (text!=null) {
         try {