//
// CIMOMHandle.java
//
// The contents of this file are subject to the SNIA Public License Version 1.0
// (the "License"); you may not use this file except in compliance with the
// License. You may obtain a copy of the License at
//
//    http://www.snia.org/resources/openSource.html
//
// Software distributed under the License is distributed on an "AS IS" basis,
// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the 
// License for the specific language governing rights and limitations
// under the License.
//
// The Original Code is CIMOMHandle.java
// 
// The Initial Developer of the Original Code is David Simons.
//
// Contributor(s): Nag Boranna
//
// This source uses the Solaris WBEM APIs version 2.2. 
// Synchronization will be maintained with the Solaris WBEM APIS,
// which are being standardized through the Java Community Process.
//
//
// $Id: CIMOMHandle.java,v 1.1 2003/07/17 18:32:55 kumpf Exp $
//
package org.snia.wbem.client;


import java.util.Enumeration;
import java.util.Vector;
//import org.snia.wbem.client.CIMListener;
//import org.snia.wbem.cim.CIMException;
import org.snia.wbem.cim.*;

public interface CIMOMHandle {
    
    public abstract void createNameSpace(CIMNameSpace ns) throws CIMException;

    public abstract void close() throws CIMException;
    
    public abstract void deleteNameSpace(CIMNameSpace ns) throws CIMException;
    
    public abstract Enumeration enumerateNameSpaces(
        CIMObjectPath path, 
        boolean deepInheritance) throws CIMException;

    /**
     * @deprecated
     * @see #enumerateNameSpaces
     */
    public abstract Enumeration enumNameSpace(
        CIMObjectPath path, 
        boolean deepInheritance) throws CIMException;

    public abstract CIMClass getClass(
        CIMObjectPath path,
        boolean localOnly,
        boolean includeQualifiers,
        boolean includeClassOrigin,
        String propertyList[]) throws CIMException;

    /**
     * @deprecated
     * @see #getClass
     */
    public abstract CIMClass getClass(CIMObjectPath name,
            boolean localOnly) throws CIMException;

    public abstract CIMInstance getInstance(
        CIMObjectPath path,
        boolean localOnly,
        boolean includeQualifiers,
        boolean includeClassOrigin,
        String propertyList[]) throws CIMException;

    /**
     * @deprecated
     * @see #getInstance
     */
    public abstract CIMInstance getInstance(CIMObjectPath name,
              boolean localOnly) throws CIMException;

    public abstract void deleteClass(CIMObjectPath path) throws CIMException;

    public abstract void deleteInstance(CIMObjectPath path) throws CIMException;

    public abstract void createClass(
        CIMObjectPath path,
        CIMClass newClass) throws CIMException;

    public abstract CIMObjectPath createInstance(
        CIMObjectPath path,
        CIMInstance newInstance) throws CIMException;

    public abstract void modifyClass(
        CIMObjectPath path,
        CIMClass modifiedClass) throws CIMException;

    /**
     * @deprecated
     * @see #modifyClass
     */
    public abstract void setClass(
        CIMObjectPath name,
        CIMClass cimClass) throws CIMException;

    public abstract void modifyInstance(
        CIMObjectPath path,
        CIMInstance modifiedInstance,
        boolean includeQualifiers,
        String propertyList[]) throws CIMException;

    /**
     * @deprecated
     * @see #modifyInstance
     */
    public abstract void setInstance(
        CIMObjectPath name,
        CIMInstance cimInstance) throws CIMException;
                 
    public abstract Enumeration enumerateClasses(
        CIMObjectPath path,
        boolean deepInheritance,
        boolean localOnly,
        boolean includeQualifiers,
        boolean includeClassOrigin) throws CIMException;

    /**
     * @deprecated
     * @see #enumerateClasses
     */
    public abstract Enumeration enumClass(CIMObjectPath path,
            boolean deep,
            boolean localOnly) throws CIMException;

    
    public abstract Enumeration enumerateClassNames(
        CIMObjectPath path,
        boolean deepInheritance) throws CIMException;

    /**
     * @deprecated
     * @see #enumerateClassNames
     */
    public abstract Enumeration enumClass(CIMObjectPath path,
            boolean deep) throws CIMException;
    
    
    public abstract Enumeration enumerateInstances(
        CIMObjectPath path,
        boolean deepInheritance,
        boolean localOnly,
        boolean includeQualifiers,
        boolean includeClassOrigin,
        String propertyList[]) throws CIMException;

    /**
     * @deprecated
     * @see #enumerateInstances
     */
    public abstract Enumeration enumInstances(CIMObjectPath path,
                boolean deep,
                boolean localOnly) throws CIMException;
    
    public abstract Enumeration enumerateInstanceNames(
        CIMObjectPath path) throws CIMException;

    /**
     * @deprecated
     * @see #enumerateInstanceNames
     */
    public abstract Enumeration enumInstances(CIMObjectPath path,
                boolean deep) throws CIMException;
    

    public abstract Enumeration execQuery(
        CIMObjectPath path,
        String query,
        int queryLanguage) throws CIMException;
    
    public abstract Enumeration associators(
        CIMObjectPath path,
        String assocClass,
        String resultClass,
        String role,
        String resultRole,
        boolean includeQualifiers,
        boolean includeClassOrigin,
        String propertyList[])throws CIMException;

    public abstract Enumeration associatorNames(
        CIMObjectPath path,
        String assocClass,
        String resultClass,
        String role,
        String resultRole) throws CIMException;

    public abstract Enumeration references(
        CIMObjectPath path,
        String resultClass,
        String role,
        boolean includeQualifiers,
        boolean includeClassOrigin,
        String propertyList[]) throws CIMException;

    public abstract Enumeration referenceNames(
        CIMObjectPath path,
        String resultClass,
        String role) throws CIMException;

    public abstract CIMValue getProperty(
        CIMObjectPath path,
        String propertyName) throws CIMException;

    public abstract void setProperty(
        CIMObjectPath path,
        String propertyName,
        CIMValue newValue) throws CIMException;

    public abstract CIMQualifierType getQualifier(
        CIMObjectPath path) throws CIMException;

    // getQualifierType is the same as getQualifiers
    //
    public abstract CIMQualifierType getQualifierType(
        CIMObjectPath path) throws CIMException;

    public abstract void setQualifier(
        CIMObjectPath path,
        CIMQualifierType qualifierType) throws CIMException;
    
    // setQualifierType is the same as setQualifiers
    //
    public abstract void setQualifierType(
        CIMObjectPath path,
        CIMQualifierType qt) throws CIMException;
    
    public abstract void deleteQualifier(
        CIMObjectPath path) throws CIMException;

    // deleteQualifierType is the same as deleteQualifiers
    //
    public abstract void deleteQualifierType(
        CIMObjectPath path) throws CIMException;

    public abstract Enumeration enumerateQualifiers(
        CIMObjectPath path) throws CIMException;
            
    // enumQualifierType is the same as enumerateQualifiers
    //
    public abstract Enumeration enumQualifierTypes(
        CIMObjectPath path) throws CIMException;
            
    public abstract CIMValue invokeMethod(
        CIMObjectPath path,
        String methodName,
        Vector inParams,
        Vector outParams) throws CIMException;

    // createQualifierType is the same as setQualifierType
    //
    public abstract void createQualifierType(
        CIMObjectPath name,
        CIMQualifierType qt) throws CIMException;

/*
    public abstract void addCIMListener(
        CIMListener listener) throws CIMException;

    public abstract void removeCIMListener(
        CIMListener listener) throws CIMException;

   //public abstract String encryptData(String data) throws CIMException;
*/
}

