The following example shows the JavaBeans components that are produced when you use the mofcomp command with the -j option.
You must run the mofcomp command as root or as a user with write access to the namespace in which you are compiling.
Avoid specifying both the -u (user) and -p (password) options when running the mofcomp command. You want to avoid having to type your password directly on the command line. Instead, specify only the -u option so that you are prompted to specify an encrypted password.
/usr/sadm/bin/mofcomp -u root -p mypassword -o /tmp -j /tmp/bean.txt /usr/sadm/mof/Simple.mof |
The content of /usr/sadm/mof/Simple.mof is as follows:
/usr/sadm/mof/Simple.mof
-------------------
#pragma include ("CIM_Core26.mof")
class Simple_Class {
[Key, Description ("Name of the class.") ]
string Name;
[Description ("Method to print the contents of the class.") ]
string printClass();
};
|
The content of /tmp/bean.txt is as follows:
/tmp/bean.txt ---------- PACKAGE=foo.com IMPORTS=java.lang.Exception EXCEPTIONS=Exception |
The content of CIMBean.java is as follows:
package foo.com;
import javax.wbem.cim.CIMException;
import javax.wbem.client.CIMOMHandle;
import javax.wbem.cim.CIMInstance;
/**
* This Interface defines the methods that must be implemented by
* CIMBeanImpl and its subclasses. CIMBeanImpl constitutes the base
* class of the Java source generated by 'mofcomp -j'.
*/
public interface CIMBean {
/**
* This method returns the CIMBean's CIMOMHandle.
*
* @return CIMOMHandle handle to the CIMOM
*/
public CIMOMHandle getCIMOMHandle();
/**
* This method sets the CIMBean's CIMOMHandle to the specifed value.
*
* @param CIMOMHandle handle to the CIMOM
*/
public void setCIMOMHandle(CIMOMHandle handle);
/**
* This method returns the CIMBean's CIMInstance.
*
* @return CIMInstance handle to the CIMInstance being managed
*/
public CIMInstance getCIMInstance();
/**
* This method sets the CIMBean's CIMInstance to the specified value.
*
* @param CIMInstance handle to the CIMInstance being managed
*/
public void setCIMInstance(CIMInstance instance);
/**
* This method makes the remote call to update the CIMInstance in the
* CIMOM.
*/
public void update() throws CIMException;
/**
* This method makes the remote call to update the specified
* CIMProperty of the CIMInstance in the CIMOM.
*
* @param String property name to update in the CIMInstance
* @param Object property value to update in the CIMProperty
*/
public void update(String propName, Object value) throws CIMException;
/**
* This method makes the remote call to delete the CIMInstance in the
* CIMOM.
*/
public void delete() throws CIMException;
/**
* This method returns a string array of the Key qualified property
* name(s) in the CIMInstance. This is needed to build the
* CIMObjectPath for the CIMInstance if it does not contain any
* qualifier information.
*
* @return String Version qualifier value or "-1" if there isn't
* one
*/
public String[] getBeanKeys();
/**
* This method returns the CIM class's Version qualifier value or
* '-1' if it does not have this qualifier.
*
* @return String[] array of the key qualified property names
*/
public String getBeanVersion();
/**
* This method returns a string representation of the CIMBean.
* This method is intended for debug purposes and the format of the
* string may vary from implementation to implementation. The string
* returned may be empty, but may not be null.
*
* @return String string representation of the Bean
*/
public String toString();
} // Interface CIMBean
The content of CIMBeanImpl.java is as follows:
package foo.com;
import java.io.Serializable;
import java.util.*;
import javax.wbem.client.CIMOMHandle;
import javax.wbem.cim.CIMException;
import javax.wbem.cim.CIMInstance;
import javax.wbem.cim.CIMObjectPath;
import javax.wbem.cim.CIMValue;
import javax.wbem.client.CIMOMHandle;
/**
* This Class implements the CIMBean Interface. It is the base Class
* of the Java source code generated by 'mofcomp -j'.
*/
public class CIMBeanImpl implements CIMBean, Serializable {
private CIMInstance cimInstance = null;
private CIMOMHandle cimomHandle = null;
/**
* This default constructor takes no parameters and creates an empty
* instance of CIMBeanImpl.
*/
public CIMBeanImpl() {
super();
} // constructor
/**
* This constructor takes the specified CIMOMHandle and CIMInstance and
* creates a CIMBeanImpl.
*
* @param CIMOMHandle handle to the CIMOM
* @param CIMInstance handle to the CIMInstance being managed
*/
public CIMBeanImpl(CIMOMHandle handle, CIMInstance instance) {
super();
cimomHandle = handle;
cimInstance = instance;
} // constructor
/**
* This method returns the CIMBean's CIMOMHandle.
*
* @return CIMOMHandle handle to the CIMOM
*/
public CIMOMHandle getCIMOMHandle() {
return (cimomHandle);
} // getCIMOMHandle
/**
* This method sets the CIMBean's CIMOMHandle to the specifed value.
*
* @param CIMOMHandle handle to the CIMOM
*/
public void setCIMOMHandle(CIMOMHandle handle) {
this.cimomHandle = handle;
} // setCIMOMHandle
/**
* This method returns the CIMBean's CIMInstance.
*
* @return CIMInstance handle to the CIMInstance being managed
*/
public CIMInstance getCIMInstance() {
return (cimInstance);
} // getCIMInstance
/**
* This method sets the CIMBean's CIMInstance to the specified
* value.
*
* @param CIMInstance handle to the CIMInstance being managed
*/
public void setCIMInstance(CIMInstance instance) {
this.cimInstance = instance;
} // setCIMInstance
/**
* This method makes the remote call to update the CIMInstance in
* the CIMOM.
*/
public void update() throws CIMException {
cimomHandle.setInstance(getObjectPath(), cimInstance);
} // update
/**
* This method makes the remote call to update the specified
* CIMProperty of the CIMInstance in the CIMOM.
*
* @param String property name to update in the CIMInstance
* @param Object property value to update in the CIMProperty
*/
public void update(String propName, Object value) throws CIMException {
cimomHandle.setProperty(getObjectPath(), propName, new CIMValue(value));
} // update
/**
* This method makes the remote call to delete the CIMInstance in the
* CIMOM.
*/
public void delete() throws CIMException {
cimomHandle.deleteInstance(getObjectPath());
} // delete
/**
* This is a convenience method for use by subclasses to get the
* Object contained in the given CIMProperty's CIMValue.
* NOTE: The Object returned may be null.
*
* @param String property name whose value should be retrieved
* @return Object object contained in the CIMProperty's CIMValue
*/
protected Object getProperty(String propName) {
try {
return (cimInstance.getProperty(propName).getValue().getValue());
} catch (NullPointerException npe) {
}
return ((Object)null);
} // getProperty
/**
* This is a convenience method for use by subclasses to get
* the String[] equivalent to the Vector contained in the given
* CIMProperty's CIMValue.
* NOTE: The String[] returned may be null.
*
* @param String property name to get the value for
* @param String[] property Values qualifier data
* @param Object[] property ValueMap qualifier data
* @return String[] container of constants for property value
*/
protected String[] getArrayProperty(String propName, String[]
valueArr, Object[] valueMapArr) {
List propList = null;
try {
propList =
((List)cimInstance.getProperty(propName).getValue().getValue());
} catch (NullPointerException npe) {
}
if (propList != null) {
String[] returnArr;
returnArr = new String[propList.size()];
ListIterator listIterator = propList.listIterator();
int counter = 0;
while (listIterator.hasNext()) {
returnArr[counter] = valueArr[getArrayIndex(valueMapArr,
listIterator.next())];
counter++;
}
return (returnArr);
}
return ((String[])null);
} // getArrayProperty
/**
* This method gets the CIMInstance referenced by the property
* value (i.e., the object path specified) and sets it in the
* specified Bean. This method is used by accessor methods of
* Association properties.
*
* @param CIMObjectPath object path for the CIMInstance
* @param CIMBeanImpl Bean container for CIMInstance retrieved
*/
protected void getAssociationProperty(CIMObjectPath cop,
CIMBeanImp bean) throws CIMException {
cop.setNameSpace("");
CIMInstance ci = cimomHandle.getInstance(cop, false, true, true,
(String[])null);
bean.setCIMInstance(ci);
bean.setCIMOMHandle(cimomHandle);
} // getAssociationProperty
/**
* This is a convenience method for use by subclasses to set a
* CIMValue containing the specified Object value in the
* CIMProperty of the specified name.
*
* @param String property name to set a new value for
* @param Object property value to update in the CIMInstance
*/
protected void setProperty(String propName, Object propValue)throws
IllegalArgumentException {
cimInstance.setProperty(propName, new CIMValue(propValue));
} // setProperty
/**
* This is a convenience method for use by subclasses to set a
* CIMValue containing a Vector equivalent to the specified
* String[] in the CIMProperty of the specified name.
*
* @param String property name to get the value for
* @param String[] property Values qualifier data
* @param Object[] property ValueMap qualifier data
* @param String[] property value to set in the CIMInstance
*/
protected void setArrayProperty(String propName, String[] valueArr,
Object[] valueMapArr, String[] propValues) {
Vector vPropValue = new Vector(propValues.length);
for (int i = 0; i < propValues.length; i++) {
vPropValue.addElement(valueMapArr[getArrayIndex(valueArr,
propValues[i])]);
}
setProperty(propName, vPropValue);
} // setArrayProperty
/**
* This method returns a string array of the Key qualified property
* name(s) in the CIMInstance. This is needed to build the
* CIMObjectPath for the CIMInstance if it does not contain any
* qualifier information.
*
* @return String[] array of the key qualified property names
*/
public String[] getBeanKeys() {
return ((String[])null);
} // getBeanKeys
/**
* This method returns the CIMObjectPath of the class's CIMInstance.
*
* @return CIMObjectPath object path for the CIMInstance
*/
protected CIMObjectPath getObjectPath() {
CIMObjectPath cop = new CIMObjectPath(cimInstance.getClassName());
Vector vKeys = cimInstance.getKeyValuePairs();
if ((vKeys != null) && (vKeys.size() > 0)) {
cop.setKeys(vKeys);
} else {
String[] keyArr = getBeanKeys();
if (keyArr != null) {
String keyProperty;
for (int i = 0; i < keyArr.length; i++) {
keyProperty = keyArr[i];
cop.addKey(keyProperty,
(cimInstance.getProperty(keyProperty)).getValue());
}
}
}
return (cop);
} // getObjectPath
/**
* This convenience method returns the index of the specified
* object in the specified array, or '-1' if the object is not
* contained in the array.
*
* @param Object[] Object array to find index of Object in
* @param Object Object to find index of in Object array
* @return int index of Object in Object array
*/
protected int getArrayIndex(Object[] objArr, Object obj) {
List arrList = Arrays.asList(objArr);
return (arrList.indexOf(obj));
} // getArrayIndex
/**
* This method returns the CIM class's Version qualifier value, or
* '-1' if it does not have this qualifier.
*
* @return String Version qualifier value or '-1' if there isn't
* one
*/
public String getBeanVersion() {
return ("-1");
} // getBeanVersion
/**
* This method returns a string representation of the CIMBean.
* This method is intended for debug purposes and the format of
* the string may vary from implementation to implementation.
* The string returned may be empty, but may not be null.
*
* @return String string representation of the Bean
*/
public String toString() {
return (cimInstance.toString());
} // toString
} // Class CIMBeanImpl
The content of Simple_ClassBean.java is as follows:
package foo.com;
import javax.wbem.client.*;
import javax.wbem.cim.*;
import java.util.*;
import java.lang.Exception;
/**
* This Interface contains accessor and mutator methods for all
* properties defined in CIM class Simple_Class as well as methods
* comparable to the invokeMethods defined for this class. This Interface
* is implemented by Simple_ClassBeanImpl. The CIM class Simple_Class is
* described as follows:
*/
public interface Simple_ClassBean extends CIMBean {
/**
* This method returns the Simple_Class.Name property value. This
* property is described as follows:
*
* Name of the class.
*
* @return String current Name property value
* @exception Exception
*/
public String getName() throws Exception;
/**
* This method sets the Simple_Class.Name property value. This
* property is described as follows:
*
* Name of the class.
*
* @param String new Name property value
* @exception Exception
*/
public void setName(String name) throws Exception;
/**
* This method invokes the Simple_Class.printClass() method. This
* method is described as follows:
*
* Method to print the contents of the class.
*
* @return String return value of printClass() invokation
* @exception Exception
*/
public String printClass() throws Exception, CIMException;
} // Interface Simple_ClassBean
The content of Simple_ClassBeanImpl.java is as follows:
package foo.com;
import javax.wbem.client.*;
import javax.wbem.cim.*;
import java.util.*;
import java.lang.Exception;
/**
* This class contains accessor and mutator methods for all properties
* defined in the CIM class Simple_Class as well as methods comparable
* to the invokeMethods defined for this class. This class implements
* the Simple_ClassBean interface. The CIM class Simple_Class is
* described as follows:
*/
public class Simple_ClassBeanImpl extends CIMBeanImpl implements
Simple_ClassBean {
private CIMOMHandle cimomHandle = null;
private CIMInstance cimInstance = null;
private final static String[] keysArr = {"Name"};
/**
* This constructor creates a Simple_ClassBeanImpl class which
* implements the Simple_ClassBean interface, and encapsulates the
* CIM class Simple_Class in a bean. The CIM class Simple_Class
* is described as follows:
*
* @param CIMOMHandle handle to the CIMOM
* @param CIMInstance handle to the CIMInstance being managed
*/
public Simple_ClassBeanImpl(CIMOMHandle handle, CIMInstance instance)
{
super(handle, instance);
this.cimomHandle = handle;
this.cimInstance = instance;
} // constructor
/**
* This method returns an array of Strings with the names of the key
* qualified properties defined for the CIM class. This method is
* used to build the CIMObjectPath of the CIMInstance managed by
* the Bean in the case that the key qualifiers are not included
* in the CIMInstance.
*
* @return String[] array of the key qualified property names
*/
public String[] getBeanKeys() {
return keysArr;
} // getBeanKeys
/**
* This method returns the Simple_Class.Name property value. This
* property is described as follows:
*
* Name of the class.
*
* @return String current Name property value
* @exception Exception
*/
public String getName() throws Exception {
return (String)getProperty("Name");
} // getName
/**
* This method sets the Simple_Class.Name property value. This
* property is described as follows:
*
* Name of the class.
*
* @param String new Name property value
* @exception Exception
*/
public void setName(String name) throws Exception {
setProperty("Name", name);
} // setName
/**
* This method invokes the Simple_Class.printClass() method. This
* method is described as follows:
*
* Method to print the contents of the class.
*
* @return String return value of printClass() invokation
* @exception Exception
*/
public String printClass() throws Exception, CIMException {
Vector vInParams = new Vector();
Vector vOutParams = new Vector();
CIMValue cv = cimomHandle.invokeMethod(cimInstance.getObjectPath(),
"printClass", vInParams, vOutParams);
return (String)cv.getValue();
} // printClass
} // Class Simple_ClassBeanImpl