org.jboss.dna.graph.property.basic
Class BasicEmptyProperty

java.lang.Object
  extended by org.jboss.dna.graph.property.basic.BasicProperty
      extended by org.jboss.dna.graph.property.basic.BasicEmptyProperty
All Implemented Interfaces:
Comparable<Property>, Iterable<Object>, Property, Readable

@Immutable
public class BasicEmptyProperty
extends BasicProperty

An immutable version of a property that has no values. This is done for efficiency of the in-memory representation, since many properties will have just a single value, while others will have multiple values.


Constructor Summary
BasicEmptyProperty(Name name)
          Create a property with no values.
 
Method Summary
 Object getFirstValue()
          Obtain the property's first value in its natural form.
 boolean isEmpty()
          Determine whether this property has no actual values.
 boolean isMultiple()
          Determine whether the property currently has multiple values.
 boolean isSingle()
          Determine whether the property currently has a single value.
 Iterator<Object> iterator()
          
 int size()
          Get the number of actual values in this property.
 
Methods inherited from class org.jboss.dna.graph.property.basic.BasicProperty
compareTo, equals, getName, getString, getString, getString, getString, getString, getValues, getValuesAsArray, hashCode, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BasicEmptyProperty

public BasicEmptyProperty(Name name)
Create a property with no values.

Parameters:
name - the property name
Method Detail

isEmpty

public boolean isEmpty()
Determine whether this property has no actual values. This method may return true regardless of whether the property allows a single value, or multiple values.

This method is a convenience method that is equivalent to size() == 0.

Returns:
true if this property has no values, or false otherwise
See Also:
Property.isMultiple(), Property.isSingle()

isMultiple

public boolean isMultiple()
Determine whether the property currently has multiple values.

Returns:
true if the property has multiple values, or false otherwise.
See Also:
Property.isSingle(), Property.isEmpty()

isSingle

public boolean isSingle()
Determine whether the property currently has a single value.

Returns:
true if the property has a single value, or false otherwise.
See Also:
Property.isMultiple(), Property.isEmpty()

size

public int size()
Get the number of actual values in this property. If the property allows multiple values, then this method may return a value greater than 1. If the property only allows a single value, then this method will return either 0 or 1. This method may return 0 regardless of whether the property allows a single value, or multiple values.

Returns:
the number of actual values in this property; always non-negative

getFirstValue

public Object getFirstValue()
Obtain the property's first value in its natural form. This is equivalent to calling isEmpty() ? null : iterator().next()

Returns:
the first value, or null if the property is empty
See Also:
Property.getFirstValue()

iterator

public Iterator<Object> iterator()



Copyright © 2008-2009 JBoss, a division of Red Hat. All Rights Reserved.