jford       2004/02/26 11:12:55

  Added:       components/registry/src/java/org/apache/jetspeed/om/common/impl
                        GenericMetadataImpl.java
  Log:
  New implementation for adding arbitrary metadata
  
  Revision  Changes    Path
  1.1                  
jakarta-jetspeed-2/components/registry/src/java/org/apache/jetspeed/om/common/impl/GenericMetadataImpl.java
  
  Index: GenericMetadataImpl.java
  ===================================================================
  /*
   * Created on Feb 24, 2004
   *
   * To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.jetspeed.om.common.impl;
  
  import java.util.ArrayList;
  import java.util.Collection;
  import java.util.Iterator;
  import java.util.Locale;
  
  import org.apache.commons.collections.MultiHashMap;
  import org.apache.jetspeed.om.common.GenericMetadata;
  import org.apache.jetspeed.om.common.LocalizedField;
  import org.apache.jetspeed.util.JetspeedObjectID;
  import org.apache.pluto.om.common.ObjectID;
  
  /**
   * @author jford
   *
   * To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  public class GenericMetadataImpl implements GenericMetadata
  {
  
      private int id;
      
      private Collection fields = null;
      private transient MultiHashMap fieldMap = new MultiHashMap();
      
      
      /* (non-Javadoc)
       * @see org.apache.jetspeed.om.common.GenericMetadata#addField(java.util.Locale, 
java.lang.String, java.lang.String)
       */
      public void addField(Locale locale, String name, String value)
      {
          LocalizedFieldImpl field = new LocalizedFieldImpl();
          field.setName(name);
          field.setValue(value);
          field.setLocale(locale);
          
          if(fields == null)
          {
              fields = new ArrayList();
          }
          
          fields.add(field);
          fieldMap.put(name, field);
      }
  
      /* (non-Javadoc)
       * @see 
org.apache.jetspeed.om.common.GenericMetadata#addField(org.apache.jetspeed.om.common.LocalizedField)
       */
      public void addField(LocalizedField field)
      {
          if(fields == null)
          {
              fields = new ArrayList();
          }
          
          fields.add(field);
          fieldMap.put(field.getName(), field);
      }
  
      /* (non-Javadoc)
       * @see org.apache.jetspeed.om.common.GenericMetadata#getFields(java.lang.String)
       */
      public Collection getFields(String name)
      {
          return (Collection)fieldMap.get(name);
      }
  
      /* (non-Javadoc)
       * @see 
org.apache.jetspeed.om.common.GenericMetadata#setFields(java.lang.String, 
java.util.Collection)
       */
      public void setFields(String name, Collection values)
      {
          fieldMap.remove(name);
          fieldMap.put(name, values);
          fields.removeAll(values);
      }
      
      /**
       * 
       */
      public ObjectID getId()
      {
          return new JetspeedObjectID(id);
      }
  
      /**
       * 
       */
      public void setId(String oid)
      {
          id = JetspeedObjectID.createFromString(oid).intValue();
      }
  
      /* (non-Javadoc)
       * @see org.apache.jetspeed.om.common.GenericMetadata#getFields()
       */
      public Collection getFields() {
          return fields;
      }
  
      /* (non-Javadoc)
       * @see 
org.apache.jetspeed.om.common.GenericMetadata#setField(java.util.Collection)
       */
      public void setFields(Collection fields)
      {
          this.fields = fields;
          
          if(fields != null)
          {    
              Iterator fieldIter = fields.iterator();
              while(fieldIter.hasNext())
              {
                  LocalizedField field = (LocalizedField)fieldIter.next();
                  fieldMap.put(field.getName(), field);
              }
          }
          
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to