DelayedTranslator.java :  » Google-tech » twig-persist » com » vercer » engine » persist » translator » Java Open Source

Java Open Source » Google tech » twig persist 
twig persist » com » vercer » engine » persist » translator » DelayedTranslator.java
package com.vercer.engine.persist.translator;

import java.lang.reflect.Type;
import java.util.Set;

import com.vercer.engine.persist.Path;
import com.vercer.engine.persist.Property;
import com.vercer.engine.persist.PropertyTranslator;
import com.vercer.engine.persist.util.SinglePropertySet;
import com.vercer.util.reference.ObjectReference;
import com.vercer.util.reference.ReadOnlyObjectReference;

public class DelayedTranslator extends DecoratingTranslator
{

  public DelayedTranslator(PropertyTranslator chained)
  {
    super(chained);
  }

  public Object propertiesToTypesafe(Set<Property> properties, Path path, Type type)
  {
    return chained.propertiesToTypesafe(properties, path, type);
  }

  public Set<Property> typesafeToProperties(final Object object, final Path path, final boolean indexed)
  {
    ObjectReference<Object> reference = new ReadOnlyObjectReference<Object>()
    {
      public Object get()
      {
        Set<Property> properties = chained.typesafeToProperties(object, path, indexed);
        return properties.iterator().next().getValue();
      }
    };
    return new SinglePropertySet(path, reference, indexed);
  }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.