Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * JBoss, Home of Professional Open Source
   * Copyright 2006, Red Hat Middleware LLC, and individual contributors
   * by the @authors tag. See the copyright.txt in the distribution for a
   * full listing of individual contributors.
   *
   * This is free software; you can redistribute it and/or modify it
   * under the terms of the GNU Lesser General Public License as
   * published by the Free Software Foundation; either version 2.1 of
  * the License, or (at your option) any later version.
  *
  * This software is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this software; if not, write to the Free
  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
  */
 package org.jboss.managed.plugins;
 
 import java.util.Map;
 import java.util.Set;
 
A default implementation of the Fields interface.

Author(s):
Scott.Stark@jboss.org
Version:
$Revision:$
 
 public class DefaultFieldsImpl
    implements Fields
 {
    private static String END_MARKER = "__END_OF_FIELDS__";

   
The serialVersionUID
 
    private static final long serialVersionUID = 1;

   
The fields
 
    private HashMap<StringSerializablefields = new HashMap<StringSerializable>();

   
Create a new DefaultFieldsImpl.
 
    public DefaultFieldsImpl()
    {      
    }

   
Create a new DefaultFieldsImpl.

Parameters:
name the property name
 
    public DefaultFieldsImpl(String name)
    {
       this.setName(name);
    }

   
Get the property name

Returns:
the name
 
    public String getName()
    {
       return getField(String.class);
    }

   
Set the property name

Parameters:
name the name
 
    public void setName(String name)
    {
       setField(name);
    }

   
Get the description

Returns:
the description
 
    public String getDescription()
    {
       return getField(String.class);
    }

   
Set the description

Parameters:
description the description
   public void setDescription(String description)
   {
      setField(description);
   }

   
Get the meta type

Returns:
the meta type
   public MetaType getMetaType()
   {
      return getField(MetaType.class);
   }
   
   
Set the meta type

Parameters:
type the meta type
   public void setMetaType(MetaType type)
   {
      setField(type);
   }

   
Get the value

Returns:
the value
   public Object getValue()
   {
      return getField();
   }
   
   
Set the value

Parameters:
value the value
   public void setValue(Serializable value)
   {
      setField(value);
   }

   
Get the legal values

Returns:
the values
   @SuppressWarnings("unchecked")
   public Set<MetaValuegetLegalValues()
   {
      return getField(Set.class);
   }
   
   
Set the legal values

Parameters:
values the values
   public void setLegalValues(Set<MetaValuevalues)
   {
      setField(, (Serializable)values);
   }

   
Get the minimum value

Returns:
the minimum value
   public Comparable<?> getMinimumValue()
   {
      return getField(Comparable.class);
   }
   
   
Set the minimum value

Parameters:
value the value
   public void setMinimumValue(Comparable<?> value)
   {
      setField(, (Serializable)value);
   }

   
Get the maximum value

Returns:
the value
   public Comparable<?> getMaximumValue()
   {
      return getField(Comparable.class);
   }
   
   
Get the maximum value

Parameters:
value the value
   public void setMaximumValue(Comparable<?> value)
   {
      setField(, (Serializable)value);
   }

   
Get whether the property is mandatory

Returns:
true when mandaotry
   public boolean isMandatory()
   {
      Boolean result = getField(Boolean.class);
      if (result == null)
         return false;
      return result;
   }
   
   
Set the mandatory value

Parameters:
flag true when mandatory
   public void setMandatory(boolean flag)
   {
      if (flag)
         setField(flag);
      else
         setField(null);
   }

   
Get a field

Parameters:
name the field name
   public Serializable getField(String name)
   {
      return .get(name);
   }

   
Set a field

Parameters:
name the field name
value the value
   public void setField(String nameSerializable value)
   {
      .put(namevalue);
   }

   
Get a field

Parameters:
<T> the expected type
fieldName the field name
expected the expected type
Returns:
the field value
   @SuppressWarnings("unchecked")
   public <T> T getField(String fieldNameClass<T> expected)
   {
      if (fieldName == null)
         throw new IllegalArgumentException("Null field name");
      if (expected == null)
         throw new IllegalArgumentException("Null expected type");
      
      Serializable field = getField(fieldName);
      
      if (field == null)
         return null;
      if (expected.isInstance(field))
         return expected.cast(field);
      
      if (field instanceof SimpleValue)
      {
         SimpleValue value = (SimpleValuefield;
         Object result = value.getValue();
         if (result == null)
            return null;
         return expected.cast(result);
      }
      
      throw new IllegalStateException("Field " + fieldName + " with value " + field + " is  a of the expected type: " + expected.getName());
   }

   
Only write out the fields that should be usable by a remote client. Excludes: PROPERTY_INFO ATTACHMENT

Parameters:
out
Throws:
java.io.IOException
   private void writeObject(java.io.ObjectOutputStream out)
      throws IOException
   {
      for (Map.Entry<StringSerializableentry : .entrySet())
      {
         if(entry.getKey().equals())
            continue;
         if(entry.getKey().equals())
            continue;
         out.writeUTF(entry.getKey());
         out.writeObject(entry.getValue());
      }
      out.writeUTF();
   }
   private void readObject(java.io.ObjectInputStream in)
   {
       = new HashMap<StringSerializable>();
      String key;
      do
      {
         key = in.readUTF();
         if(key.equals())
            key = null;
         else
         {
            Serializable value = (Serializablein.readObject();
            .put(keyvalue);
         }
      } while(key != null);
   }
New to GrepCode? Check out our FAQ X