📄 jmpiassociationprovider.java
字号:
if (equals (localObjectPath, elmPath)) { return elm; } } return null; } private Vector _enumerateInstances (Vector instances) { return instances; } private Vector _enumerateInstanceNames (Vector instances) { Vector returnPaths = new Vector (); Iterator iteratorInstances = instances.iterator (); while (iteratorInstances.hasNext ()) { CIMInstance elm = (CIMInstance)iteratorInstances.next (); returnPaths.addElement (elm.getObjectPath ()); } return returnPaths; } private Vector _associators (Vector associationInstances, CIMObjectPath localObjectPath, String role, String resultClass, String resultRole) { Vector vectorReturn = new Vector (); // Filter the instances from the list of association instances against // the specified role filter // Vector assocInstances = null; assocInstances = _filterAssociationInstancesByRole (associationInstances, localObjectPath, role); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: assocInstances.size () = " + assocInstances.size ()); } // Now filter the result association instances against the specified // resultClass and resultRole filters // for (int i = 0, si = assocInstances.size (); i < si; i++) { Vector resultPaths; resultPaths = _filterAssociationInstances ((CIMInstance)assocInstances.elementAt (i), localObjectPath, resultClass, resultRole); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: resultPaths.size () = " + resultPaths.size ()); } for (int j = 0, sj = resultPaths.size (); j < sj; j++) { String className = ((CIMObjectPath)resultPaths.elementAt (j)).getObjectName (); if (className.equalsIgnoreCase (SAMPLE_TEACHER)) { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: teacherInstances.size () = " + teacherInstances.size ()); } // find instance that corresponds to the reference for (int k = 0, s = teacherInstances.size (); k < s; k++) { CIMObjectPath path = ((CIMInstance)teacherInstances.elementAt (k)).getObjectPath (); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: path = " + path); System.err.println ("JMPIAssociationProvider::_associators: resultPaths.elementAt (" + j + ") = " + resultPaths.elementAt (j)); } if (equals (((CIMObjectPath)resultPaths.elementAt (j)), path)) { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: adding!"); } // return the instance // Note: See below. vectorReturn.addElement (((CIMInstance)teacherInstances.elementAt (k)).clone ()); } } } else if (className.equalsIgnoreCase (SAMPLE_STUDENT)) { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: studentInstances.size () = " + studentInstances.size ()); } // find instance that corresponds to the reference for (int k = 0, s = studentInstances.size (); k < s; k++) { CIMObjectPath path = ((CIMInstance)studentInstances.elementAt (k)).getObjectPath (); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: path = " + path); System.err.println ("JMPIAssociationProvider::_associators: resultPaths.elementAt (" + j + ") = " + resultPaths.elementAt (j)); } if (equals (((CIMObjectPath)resultPaths.elementAt (j)), path)) { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associators: adding!"); } // return the instance // Note: We must clone what is being returned since otherwise our // copy will be modified. // The CIMObjectPath will change from: // root/SampleProvider:JMPIAssociation_Student.Identifier=1,Name="Student1" // to: // root/SampleProvider:JMPIAssociation_Student.Name="Student1" vectorReturn.addElement (((CIMInstance)studentInstances.elementAt (k)).clone ()); } } } } } return vectorReturn; } private Vector _associatorNames (Vector associationInstances, CIMObjectPath localObjectPath, String role, String resultClass, String resultRole) { Vector vectorReturn = new Vector (); // Filter the instances from the list of association instances against // the specified role filter // Vector assocInstances; assocInstances = _filterAssociationInstancesByRole (associationInstances, localObjectPath, role); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associatorNames: assocInstances.size () = " + assocInstances.size ()); } // Now filter the result association instances against the specified // resultClass and resultRole filters // for (int i = 0, si = assocInstances.size (); i < si; i++) { Vector resultPaths; resultPaths = _filterAssociationInstances ((CIMInstance)assocInstances.elementAt (i), localObjectPath, resultClass, resultRole); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_associatorNames: resultPaths.size () = " + resultPaths.size ()); } vectorReturn.addAll (resultPaths); } return vectorReturn; } private Vector _filterAssociationInstancesByRole (Vector associationInstances, CIMObjectPath targetObjectPath, String role) { Vector returnInstances = new Vector (); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_filterAssociationInstancesByRole: associationInstances.size () = " + associationInstances.size ()); System.err.println ("JMPIAssociationProvider::_filterAssociationInstancesByRole: targetObjectPath = " + targetObjectPath); System.err.println ("JMPIAssociationProvider::_filterAssociationInstancesByRole: role = " + role); } try { // Filter the instances from the list of association instances against // the specified role filter // for (int i = 0, si = associationInstances.size (); i < si; i++) { CIMInstance instance = (CIMInstance)associationInstances.elementAt (i); // Search the association instance for all reference properties for (int j = 0, sj = instance.getPropertyCount (); j < sj; j++) { CIMProperty p = instance.getProperty (j); if (p.getType ().getType () == CIMDataType.REFERENCE) { CIMObjectPath copRef = (CIMObjectPath)p.getValue ().getValue (); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_filterAssociationInstancesByRole: p = " + p); System.err.println ("JMPIAssociationProvider::_filterAssociationInstancesByRole: copRef = " + copRef); } if ( (role.equalsIgnoreCase ("")) || (p.getName ().equalsIgnoreCase (role)) ) { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_filterAssociationInstancesByRole: targetObjectPath = " + targetObjectPath); } if (targetObjectPath.toString ().equalsIgnoreCase (copRef.toString ())) { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_filterAssociationInstancesByRole: adding!"); } returnInstances.addElement (instance); } } } } } } catch (CIMException e) { } return returnInstances; } private Vector _filterAssociationInstances (CIMInstance assocInstance, CIMObjectPath sourceObjectPath, String resultClass, String resultRole) { Vector returnPaths = new Vector (); try { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_filterAssociationInstances: assocInstance.getPropertyCount () = " + assocInstance.getPropertyCount ()); System.err.println ("JMPIAssociationProvider::_filterAssociationInstances: sourceObjectPath = " + sourceObjectPath); System.err.println ("JMPIAssociationProvider::_filterAssociationInstances: resultClass = " + resultClass); System.err.println ("JMPIAssociationProvider::_filterAssociationInstances: resultRole = " + resultRole); } // get all Reference properties for (int i = 0, si = assocInstance.getPropertyCount (); i < si; i++) { CIMProperty p = assocInstance.getProperty (i); if (p.getType ().getType () == CIMDataType.REFERENCE) { CIMObjectPath copRef = (CIMObjectPath)p.getValue ().getValue (); if (DEBUG) { System.err.println ("JMPIAssociationProvider::_filterAssociationInstances: p = " + p); System.err.println ("JMPIAssociationProvider::_filterAssociationInstances: copRef = " + copRef); } if (!equals (sourceObjectPath, copRef)) { if ( resultClass.equalsIgnoreCase ("") || resultClass == copRef.getObjectName () ) { if ( (resultRole.equalsIgnoreCase ("")) || (p.getName ().equalsIgnoreCase (resultRole)) ) { if (DEBUG) { System.err.println ("JMPIAssociationProvider::_filterAssociationInstances: adding!"); } returnPaths.addElement (copRef); } } } } } } catch (CIMException e) { } return returnPaths; } private boolean equals (CIMObjectPath l, CIMObjectPath r) { String ls = l.toString (); String rs = r.toString (); return ls.equalsIgnoreCase (rs); } private Vector teacherInstances = new Vector (); private Vector studentInstances = new Vector (); private Vector TSassociationInstances = new Vector (); private Vector ASassociationInstances = new Vector (); private String NAMESPACE = new String ("root/SampleProvider"); // Class names private String SAMPLE_TEACHER = new String ("JMPIAssociation_Teacher"); private String SAMPLE_STUDENT = new String ("JMPIAssociation_Student"); private String SAMPLE_TEACHERSTUDENT = new String ("JMPIAssociation_TeacherStudent"); private String SAMPLE_ADVISORSTUDENT = new String ("JMPIAssociation_AdvisorStudent");}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -