// Path: fabric.lib/src/fabric/registry/exception/PersistenceException.java
// public class PersistenceException extends Exception {
// 
// 	/** Copyright notice. */
// 	public static final String copyrightNotice = "(C) Copyright IBM Corp. 2009";
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private String errorMessage = null;
// 	private int errorCode = 0;
// 	private String sqlState = null;
// 
// 	/**
// 	 * 
// 	 */
// 	public PersistenceException() {
// 	}
// 
// 	/**
// 	 * 
// 	 * @param msg
// 	 */
// 	public PersistenceException(String msg) {
// 		super(msg);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param detailMessage
// 	 * @param throwable
// 	 */
// 	public PersistenceException(String detailMessage, Throwable throwable) {
// 		super(detailMessage, throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param throwable
// 	 */
// 	public PersistenceException(Throwable throwable) {
// 		super(throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param message
// 	 * @param errorMessage
// 	 * @param errorCode
// 	 * @param sqlState
// 	 */
// 	public PersistenceException(String message, String errorMessage, int errorCode, String sqlState) {
// 		super(message);
// 
// 		this.errorMessage = errorMessage;
// 		this.errorCode = errorCode;
// 		this.sqlState = sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public int getErrorCode() {
// 		return errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorCode
// 	 */
// 	public void setErrorCode(int errorCode) {
// 		this.errorCode = errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getErrorMessage() {
// 		return errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorMessage
// 	 */
// 	public void setErrorMessage(String errorMessage) {
// 		this.errorMessage = errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getSqlState() {
// 		return sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param sqlState
// 	 */
// 	public void setSqlState(String sqlState) {
// 		this.sqlState = sqlState;
// 	}
// }


import fabric.Fabric;
import fabric.registry.FabricRegistry;
import fabric.registry.QueryScope;
import fabric.registry.RegistryObject;
import fabric.registry.Service;
import fabric.registry.ServiceFactory;
import fabric.registry.exception.DuplicateKeyException;
import fabric.registry.exception.IncompleteObjectException;
import fabric.registry.exception.PersistenceException;
import fabric.registry.exception.RegistryQueryException;
import fabric.registry.persistence.IPersistenceResultRow;
    @Override
    public Service createListener(String platformId, String systemId, String serviceId, String typeId) {

        return createService(platformId, systemId, serviceId, typeId, Service.MODE_LISTENER, null, null, null, null,
                null);
    }

    /**
     * @see fabric.registry.ServiceFactory#createService(java.lang.String, java.lang.String, java.lang.String,
     *      java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String,
     *      java.lang.String)
     */
    @Override
    public Service createService(String platformId, String systemId, String id, String typeID, String mode,
            String credentials, String availability, String description, String attributes, String attributesURI) {

        Service f = new ServiceImpl(platformId, systemId, id, typeID, mode, credentials, availability, description,
                attributes, attributesURI);
        return f;
    }

    /**
     * @see fabric.registry.ServiceFactory#getAllServices()
     */
    @Override
    public Service[] getAllServices() {

        Service[] services = null;
        try {
            services = queryServices(SELECT_ALL_QUERY);
// Path: fabric.lib/src/fabric/registry/exception/PersistenceException.java
// public class PersistenceException extends Exception {
// 
// 	/** Copyright notice. */
// 	public static final String copyrightNotice = "(C) Copyright IBM Corp. 2009";
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	private String errorMessage = null;
// 	private int errorCode = 0;
// 	private String sqlState = null;
// 
// 	/**
// 	 * 
// 	 */
// 	public PersistenceException() {
// 	}
// 
// 	/**
// 	 * 
// 	 * @param msg
// 	 */
// 	public PersistenceException(String msg) {
// 		super(msg);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param detailMessage
// 	 * @param throwable
// 	 */
// 	public PersistenceException(String detailMessage, Throwable throwable) {
// 		super(detailMessage, throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param throwable
// 	 */
// 	public PersistenceException(Throwable throwable) {
// 		super(throwable);
// 	}
// 
// 	/**
// 	 * 
// 	 * @param message
// 	 * @param errorMessage
// 	 * @param errorCode
// 	 * @param sqlState
// 	 */
// 	public PersistenceException(String message, String errorMessage, int errorCode, String sqlState) {
// 		super(message);
// 
// 		this.errorMessage = errorMessage;
// 		this.errorCode = errorCode;
// 		this.sqlState = sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public int getErrorCode() {
// 		return errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorCode
// 	 */
// 	public void setErrorCode(int errorCode) {
// 		this.errorCode = errorCode;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getErrorMessage() {
// 		return errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param errorMessage
// 	 */
// 	public void setErrorMessage(String errorMessage) {
// 		this.errorMessage = errorMessage;
// 	}
// 
// 	/**
// 	 * 
// 	 * @return
// 	 */
// 	public String getSqlState() {
// 		return sqlState;
// 	}
// 
// 	/**
// 	 * 
// 	 * @param sqlState
// 	 */
// 	public void setSqlState(String sqlState) {
// 		this.sqlState = sqlState;
// 	}
// }


// Path: fabric.lib/src/fabric/registry/impl/ServiceFactoryImpl.java
import fabric.Fabric;
import fabric.registry.FabricRegistry;
import fabric.registry.QueryScope;
import fabric.registry.RegistryObject;
import fabric.registry.Service;
import fabric.registry.ServiceFactory;
import fabric.registry.exception.DuplicateKeyException;
import fabric.registry.exception.IncompleteObjectException;
import fabric.registry.exception.PersistenceException;
import fabric.registry.exception.RegistryQueryException;
import fabric.registry.persistence.IPersistenceResultRow;

    @Override
    public Service createListener(String platformId, String systemId, String serviceId, String typeId) {

        return createService(platformId, systemId, serviceId, typeId, Service.MODE_LISTENER, null, null, null, null,
                null);
    }

    /**
     * @see fabric.registry.ServiceFactory#createService(java.lang.String, java.lang.String, java.lang.String,
     *      java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String,
     *      java.lang.String)
     */
    @Override
    public Service createService(String platformId, String systemId, String id, String typeID, String mode,
            String credentials, String availability, String description, String attributes, String attributesURI) {

        Service f = new ServiceImpl(platformId, systemId, id, typeID, mode, credentials, availability, description,
                attributes, attributesURI);
        return f;
    }

    /**
     * @see fabric.registry.ServiceFactory#getAllServices()
     */
    @Override
    public Service[] getAllServices() {

        Service[] services = null;
        try {
            services = queryServices(SELECT_ALL_QUERY);
        } catch (PersistenceException e) {