All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonj.sdo.impl.HelperProvider Maven / Gradle / Ivy

There is a newer version: 2.2.1
Show newest version
/**
 * 
 *
 * Service Data Objects
 * Version 2.1.0
 * Licensed Materials
 *
 * (c) Copyright BEA Systems, Inc., International Business Machines Corporation, 
 * Oracle Corporation, Primeton Technologies Ltd., Rogue Wave Software, SAP AG., 
 * Software AG., Sun Microsystems, Sybase Inc., Xcalia, Zend Technologies, 
 * 2005, 2006. All rights reserved.
 *
 * 
 * 
 */


package commonj.sdo.impl;


import commonj.sdo.helper.CopyHelper;
import commonj.sdo.helper.DataFactory;
import commonj.sdo.helper.DataHelper;
import commonj.sdo.helper.EqualityHelper;
import commonj.sdo.helper.HelperContext;
import commonj.sdo.helper.TypeHelper;
import commonj.sdo.helper.XMLHelper;
import commonj.sdo.helper.XSDHelper;
import commonj.sdo.impl.ExternalizableDelegator.Resolvable;

/**
 * This class instantiates a HelperProviderImpl that returns concrete helpers.
 * This class may be replaced by another implementation.
 */
public abstract class HelperProvider
{
  static HelperProvider INSTANCE = getHelperProviderImpl();
  
  static HelperProvider getHelperProviderImpl() 
  {
    try
    {
      return (HelperProvider)Class.forName("commonj.sdo.impl.HelperProviderImpl").newInstance();
    } catch (Exception e)
    {
      throw new RuntimeException(e);
    }
  } // end method getHelperProvider()
  
  HelperProvider()
  {
  }
  
  /**
   * Gets a CopyHelper
   * @return a CopyHelper object
   */
  public static CopyHelper getCopyHelper()
  {
    return INSTANCE.copyHelper();
  }

  /**
   * Gets a DataFactory
   * @return a DataFactory object
   */
  public static DataFactory getDataFactory()
  {
    return INSTANCE.dataFactory();
  }

  /**
   * Gets a DataHelper
   * @return a DataHelper object
   */
  public static DataHelper getDataHelper()
  {
    return INSTANCE.dataHelper();
  }

  /**
   * Gets an EqualityHelper
   * @return an EqualityHelper object
   */
  public static EqualityHelper getEqualityHelper()
  {
    return INSTANCE.equalityHelper();
  }
  
  /**
   * Gets a TypeHelper 
   * @return a TypeHelper object
   */
  public static TypeHelper getTypeHelper()
  {
    return INSTANCE.typeHelper();
  }

  /**
   * Gets an XMLHelper
   * @return an XMLHelper object
   */
  public static XMLHelper getXMLHelper()
  {
    return INSTANCE.xmlHelper();
  }
  
  /**
   * Gets an XSDHelper 
   * @return an XSDHelper object
   */
  public static XSDHelper getXSDHelper()
  {
    return INSTANCE.xsdHelper();
  }

  /**
   * Gets a Resolvable 
   * @return a Resolvable object
   * @see ExternalizableDelegator
   */
  public static Resolvable createResolvable()
  {
    return INSTANCE.resolvable();
  }
  
  /**
   * Gets a Resolvable 
   * @param target the target object for the Resolvable
   * @return a Resolvable object
   * @see ExternalizableDelegator
   */
  public static Resolvable createResolvable(Object target)
  {
    return INSTANCE.resolvable(target);
  }

  abstract CopyHelper copyHelper();
  abstract DataFactory dataFactory();
  abstract DataHelper dataHelper();
  abstract EqualityHelper equalityHelper();
  abstract TypeHelper typeHelper();
  abstract XMLHelper xmlHelper();
  abstract XSDHelper xsdHelper();
  abstract Resolvable resolvable();
  abstract Resolvable resolvable(Object target);

  ////////////////////////////////////////////////////////////////////////////////////////////////////
  // New in SDO 2.1
  ////////////////////////////////////////////////////////////////////////////////////////////////////

  /**
   * Gets the default HelperContext
   * @return a HelperContext object
   */
  public static HelperContext getDefaultContext()
  {
    return INSTANCE.helperContext();
  }
    
  HelperContext helperContext()
  {
    return defaultContext;
  }
    
  static HelperContext defaultContext = new DefaultHelperContext();

  static class DefaultHelperContext implements HelperContext
  {
    public CopyHelper getCopyHelper() { return INSTANCE.copyHelper(); }
    public DataFactory getDataFactory() { return INSTANCE.dataFactory(); }
    public DataHelper getDataHelper() { return INSTANCE.dataHelper(); }
    public EqualityHelper getEqualityHelper() { return INSTANCE.equalityHelper(); }
    public TypeHelper getTypeHelper() { return INSTANCE.typeHelper(); }
    public XMLHelper getXMLHelper() { return INSTANCE.xmlHelper(); }
    public XSDHelper getXSDHelper() { return INSTANCE.xsdHelper(); }
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy