Search in sources :

Example 1 with NameType

use of com.epri._2016.cimidentities.NameType in project CIM-Identities by epri-dev.

the class CIMIdentitiesClient method enterButtonActionPerformed.

// GEN-LAST:event_refreshButtonActionPerformed
private void enterButtonActionPerformed(java.awt.event.ActionEvent evt) {
    // GEN-FIRST:event_enterButtonActionPerformed
    n_nameNew = n_nameBox.getText();
    nt_nameNew = nt_nameBox.getText();
    nt_desNew = nt_desBox.getText();
    nta_nameNew = nta_nameBox.getText();
    nta_desNew = nta_desBox.getText();
    String mRID = enter_uuidBox.getText();
    ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesEventMessageType msg = new ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesEventMessageType();
    /* create payload object out of parsed data */
    CIMIdentitiesPayloadType payload = new CIMIdentitiesPayloadType();
    // create new CIMIdentities object
    CIMIdentities cimids = new CIMIdentities();
    CIMIdentity cimid = new CIMIdentity();
    payload.setCIMIdentities(cimids);
    // creates new ArrayList of CIMIdentities
    ArrayList<CIMIdentity> cim = (ArrayList<CIMIdentity>) payload.getCIMIdentities().getCIMIdentity();
    // set mRID
    IdentifiedObject value = new IdentifiedObject();
    value.setMRID(mRID);
    cimid.setIdentifiedObject(value);
    // set name
    Name name = new Name();
    name.setName(n_nameNew);
    if (Delete.isSelected())
        name.setName("");
    if (name.getName() == null)
        name.setName("");
    cimid.getNames().add(name);
    // set NameType name/description
    NameType nameType = new NameType();
    nameType.setDescription(nt_desNew);
    if (Delete.isSelected())
        nameType.setDescription("");
    if (nameType.getDescription() == null)
        nameType.setDescription("");
    nameType.setName(nt_nameNew);
    if (Delete.isSelected())
        nameType.setName("");
    if (nameType.getName() == null)
        nameType.setName("");
    cimid.getNames().get(0).setNameType(nameType);
    // set NameTypeAuthority name/description
    NameTypeAuthority nameTypeAuth = new NameTypeAuthority();
    nameTypeAuth.setDescription(nta_desNew);
    if (Delete.isSelected())
        nameTypeAuth.setDescription("");
    if (nameTypeAuth.getDescription() == null)
        nameTypeAuth.setDescription("");
    nameTypeAuth.setName(nta_nameNew);
    if (Delete.isSelected())
        nameTypeAuth.setName("");
    if (nameTypeAuth.getName() == null)
        nameTypeAuth.setDescription("");
    cimid.getNames().get(0).getNameType().setNameTypeAuthority(nameTypeAuth);
    cim.add(cimid);
    msg.setPayload(payload);
    /* Insertion handling */
    if (Insert.isSelected()) {
        if (gen_uuidSel.isSelected()) {
            value.setMRID("");
            payload.getCIMIdentities().getCIMIdentity().get(0).setIdentifiedObject(value);
            msg.setPayload(payload);
        }
        HeaderType header = new HeaderType();
        header.setNoun("CIMIdentities");
        header.setVerb("create");
        msg.setHeader(header);
        try {
            createdCIMIdentitiesRequest(msg);
            JOptionPane.showMessageDialog(null, "Data inserted:\n\n" + "\nName: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "\nNameType Name: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "\nNameType Description: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "\nNameTypeAuthority Name: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "\nNameTypeAuthority Description: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription());
        } catch (FaultMessage ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            Logger.getLogger(CIMIdentitiesClient.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    /* deletion handling */
    if (Delete.isSelected() && enter_uuidSel.isSelected()) {
        uuidEntered = true;
        HeaderType header = new HeaderType();
        header.setNoun("CIMIdentities");
        header.setVerb("delete");
        msg.setHeader(header);
        /* query the server for the mRID being deleted */
        CIMIdentitiesQueriesRequestType request = new CIMIdentitiesQueriesRequestType();
        CIMIdentitiesQueries var = new CIMIdentitiesQueries();
        EndDeviceGroup edg = new EndDeviceGroup();
        // can be null, '?', or '""' to receive all data, else set mRID
        edg.setMRID(mRID);
        message.setRequest(request);
        message.getRequest().setCIMIdentitiesQueries(var);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup().add(0, edg);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup();
        try {
            response = queryCIMIdentities(message);
        } catch (QueryCIMIdentitiesFaultMessage ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
        }
        /* set outgoing deletion message to contain ALL data about the mRID */
        msg.getPayload().setCIMIdentities(response.getPayload().getCIMIdentities());
        try {
            if (response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() == null)
                throw new IndexOutOfBoundsException("mRID doesn't exist");
            deletedCIMIdentitiesRequest(msg);
            JOptionPane.showMessageDialog(null, "Data deleted:\n\n" + "mRID: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() + "\nName: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "\nNameType Name: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "\nNameType Description: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "\nNameTypeAuthority Name: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "\nNameTypeAuthority Description: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription());
        } catch (FaultMessage ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            Logger.getLogger(CIMIdentitiesClient.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IndexOutOfBoundsException err) {
            JOptionPane.showMessageDialog(null, "No deletion made.\nUUID does not currently exist in the database.\n");
        }
    }
    /* modification handling */
    if (Modify.isSelected()) {
        HeaderType header = new HeaderType();
        header.setNoun("CIMIdentities");
        header.setVerb("change");
        msg.setHeader(header);
        /* query the server for the mRID being modified */
        CIMIdentitiesQueriesRequestType request = new CIMIdentitiesQueriesRequestType();
        CIMIdentitiesQueries var = new CIMIdentitiesQueries();
        EndDeviceGroup edg = new EndDeviceGroup();
        // can be null, '?', or '""' to receive all data, else set mRID
        edg.setMRID(mRID);
        message.setRequest(request);
        message.getRequest().setCIMIdentitiesQueries(var);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup().add(0, edg);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup();
        try {
            response = queryCIMIdentities(message);
        } catch (QueryCIMIdentitiesFaultMessage ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            Logger.getLogger(CIMIdentitiesClient.class.getName()).log(Level.SEVERE, null, ex);
        }
        try {
            if (response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() == null)
                throw new IndexOutOfBoundsException("mRID doesn't exist");
            changedCIMIdentitiesRequest(msg);
            JOptionPane.showMessageDialog(null, "Data modified:\n\n" + "mRID: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() + "\nPrevious Name: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "\nPrevious NameType Name: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "\nPrevious NameType Description: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "\nPrevoius NameTypeAuthority Name: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "\nPrevious NameTypeAuthority Description: " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription() + "\n\n\nNew Name: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "\nNew NameType Name: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "\nNew NameType Description: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "\nNew NameTypeAuthority Name: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "\nNew NameTypeAuthority Description: " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription());
        } catch (FaultMessage ex) {
            JOptionPane.showMessageDialog(null, ex.getMessage());
            Logger.getLogger(CIMIdentitiesClient.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IndexOutOfBoundsException err) {
            JOptionPane.showMessageDialog(null, "No modification made.\nUUID does not currently exist in the database.\n");
        }
    }
    n_nameBox.setText("");
    nt_nameBox.setText("");
    nt_desBox.setText("");
    nta_nameBox.setText("");
    nta_desBox.setText("");
    enter_uuidBox.setText("");
    n_name.removeAllItems();
    nt_namecb.removeAllItems();
    nt_descb.removeAllItems();
    nta_namecb.removeAllItems();
    nta_descb.removeAllItems();
    createTable();
    populateComboBoxes();
}
Also used : CIMIdentitiesQueries(ch.iec.tc57._2016.cimidentitiesqueries.CIMIdentitiesQueries) ArrayList(java.util.ArrayList) NameType(com.epri._2016.cimidentities.NameType) Name(com.epri._2016.cimidentities.Name) QueryCIMIdentitiesFaultMessage(ch.iec.tc57._2016.querycimidentities.QueryCIMIdentitiesFaultMessage) CIMIdentitiesQueriesRequestType(ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesRequestType) EndDeviceGroup(ch.iec.tc57._2016.cimidentitiesqueries.EndDeviceGroup) CIMIdentitiesPayloadType(ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesPayloadType) CIMIdentity(com.epri._2016.cimidentities.CIMIdentity) NameTypeAuthority(com.epri._2016.cimidentities.NameTypeAuthority) FaultMessage(ch.iec.tc57._2016.sendcimidentities.FaultMessage) QueryCIMIdentitiesFaultMessage(ch.iec.tc57._2016.querycimidentities.QueryCIMIdentitiesFaultMessage) HeaderType(ch.iec.tc57._2011.schema.message.HeaderType) IdentifiedObject(com.epri._2016.cimidentities.IdentifiedObject) CIMIdentities(com.epri._2016.cimidentities.CIMIdentities)

Example 2 with NameType

use of com.epri._2016.cimidentities.NameType in project CIM-Identities by epri-dev.

the class CIMIdentities method createdCIMIdentitiesRequest.

public ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType createdCIMIdentitiesRequest(ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesEventMessageType message) throws ClassNotFoundException {
    ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType response = new ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType();
    // Event message type only contains the header/payload
    // Response message type contains header/payload/reply
    // therefore, response message type must be set for CIMIdentitiesResponseMessageType
    ReplyType value = new ReplyType();
    // String result = value.getResult();
    value.setResult("OK");
    // set response header/payload/reply
    response.setHeader(message.getHeader());
    response.setPayload(message.getPayload());
    response.setReply(value);
    // extract individual values for insertion into database
    ArrayList<CIMIdentity> cim = (ArrayList<CIMIdentity>) response.getPayload().getCIMIdentities().getCIMIdentity();
    mRID = cim.get(0).getIdentifiedObject().getMRID();
    NName = cim.get(0).getNames().get(0).getName();
    NTName = cim.get(0).getNames().get(0).getNameType().getName();
    NTDes = cim.get(0).getNames().get(0).getNameType().getDescription();
    NTAName = cim.get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName();
    NTADes = cim.get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription();
    try {
        Class.forName("org.postgresql.Driver");
        Connection con = DriverManager.getConnection(host, uName, password);
        Statement stmt = con.createStatement();
        // as uuidEntered == false
        if (mRID.equals("") || mRID.equals("?")) {
            String genUUID = "INSERT INTO public.\"Identity\" (id_pkey, entry)" + "VALUES (DEFAULT, DEFAULT)";
            stmt.executeUpdate(genUUID);
            String getUUID = "SELECT id.id_pkey FROM \"Identity\" id " + "ORDER BY id.entry desc LIMIT 1";
            ResultSet rs = stmt.executeQuery(getUUID);
            rs.next();
            mRID = rs.getString("id_pkey");
            response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().setMRID(mRID);
        } else {
            String entUUID = "INSERT INTO public.\"Identity\"(id_pkey, entry)" + "VALUES ('" + mRID + "', DEFAULT)";
            stmt.executeUpdate(entUUID);
        }
        String insertIDObj = "INSERT INTO public.\"IdentifiedObject\"(io_pkey)" + "VALUES('" + mRID + "')";
        String insertName = "INSERT INTO public.\"Name\"(n_pkey, n_name)" + "VALUES('" + mRID + "', '" + NName + "')";
        String insertNT = "INSERT INTO public.\"NameType\"(nt_pkey, nt_description, nt_name)" + "VALUES ('" + mRID + "', '" + NTDes + "', '" + NTName + "')";
        String insertNTA = "INSERT INTO public.\"NameTypeAuthority\"(nta_pkey, nta_name, nta_description)" + "VALUES ('" + mRID + "', '" + NTAName + "', '" + NTADes + "')";
        stmt.executeUpdate(insertIDObj);
        stmt.executeUpdate(insertName);
        stmt.executeUpdate(insertNT);
        stmt.executeUpdate(insertNTA);
        stmt.close();
        con.close();
        return response;
    } catch (SQLException err) {
        value.setResult("FAILED");
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        err.printStackTrace(pw);
        value.getError().get(0).setDetails(sw.toString());
        response.setReply(value);
        return response;
    }
}
Also used : CIMIdentity(com.epri._2016.cimidentities_.CIMIdentity) SQLException(java.sql.SQLException) Statement(java.sql.Statement) ArrayList(java.util.ArrayList) Connection(java.sql.Connection) StringWriter(java.io.StringWriter) ResultSet(java.sql.ResultSet) ReplyType(ch.iec.tc57._2011.schema.message.ReplyType) PrintWriter(java.io.PrintWriter)

Example 3 with NameType

use of com.epri._2016.cimidentities.NameType in project CIM-Identities by epri-dev.

the class CIMWebService method submitData.

// Method name:  submitData
// Parameters:  n_nameNew, nt_nameNew, nt_desNew, nta_nameNew, nta_desNew, mRID, action, gen_uuidSel
// Purpose:  Submits data for either insertion, deletion, or modification
public String submitData(String n_nameNew, String nt_nameNew, String nt_desNew, String nta_nameNew, String nta_desNew, String mRID, String action, boolean gen_uuidSel) {
    ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesEventMessageType msg = new ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesEventMessageType();
    ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType resp = new ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType();
    CIMIdentitiesPayloadType payload = new CIMIdentitiesPayloadType();
    CIMIdentities cimids = new CIMIdentities();
    CIMIdentity cimid = new CIMIdentity();
    payload.setCIMIdentities(cimids);
    ArrayList<CIMIdentity> cim = (ArrayList<CIMIdentity>) payload.getCIMIdentities().getCIMIdentity();
    IdentifiedObject value = new IdentifiedObject();
    value.setMRID(mRID);
    cimid.setIdentifiedObject(value);
    String error = new String();
    Name name = new Name();
    name.setName(n_nameNew);
    if (action.equals("delete"))
        name.setName("");
    if (name.getName() == null)
        name.setName("");
    cimid.getNames().add(name);
    // set NameType name/description
    NameType nameType = new NameType();
    nameType.setDescription(nt_desNew);
    if (action.equals("delete"))
        nameType.setDescription("");
    if (nameType.getDescription() == null)
        nameType.setDescription("");
    nameType.setName(nt_nameNew);
    if (action.equals("delete"))
        nameType.setName("");
    if (nameType.getName() == null)
        nameType.setName("");
    cimid.getNames().get(0).setNameType(nameType);
    // set NameTypeAuthority name/description
    NameTypeAuthority nameTypeAuth = new NameTypeAuthority();
    nameTypeAuth.setDescription(nta_desNew);
    if (action.equals("delete"))
        nameTypeAuth.setDescription("");
    if (nameTypeAuth.getDescription() == null)
        nameTypeAuth.setDescription("");
    nameTypeAuth.setName(nta_nameNew);
    if (action.equals("delete"))
        nameTypeAuth.setName("");
    if (nameTypeAuth.getName() == null)
        nameTypeAuth.setDescription("");
    cimid.getNames().get(0).getNameType().setNameTypeAuthority(nameTypeAuth);
    cim.add(cimid);
    msg.setPayload(payload);
    /* Insertion handling */
    if (action.equals("insert")) {
        if (gen_uuidSel == true) {
            value.setMRID("");
            payload.getCIMIdentities().getCIMIdentity().get(0).setIdentifiedObject(value);
            msg.setPayload(payload);
        }
        HeaderType header = new HeaderType();
        header.setNoun("CIMIdentities");
        header.setVerb("create");
        msg.setHeader(header);
        try {
            resp = createdCIMIdentitiesRequest(msg);
            String confirmation = "Data inserted:<br>" + "<br><strong>Name:</strong> " + resp.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "<br><strong>NameType Name:</strong> " + resp.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "<br><strong>NameType Description:</strong> " + resp.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "<br><strong>NameTypeAuthority Name:</strong> " + resp.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "<br><strong>NameTypeAuthority Description:</strong> " + resp.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription() + "<br><strong>mRID:</strong>  " + resp.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID();
            return confirmation;
        } catch (FaultMessage ex) {
            resp.getReply().getError().get(0).setDetails(ex.getMessage());
            return resp.getReply().getError().get(0).getDetails();
        }
    } else /* deletion handling */
    if (action.equals("delete") && gen_uuidSel == true) {
        uuidEntered = true;
        HeaderType header = new HeaderType();
        header.setNoun("CIMIdentities");
        header.setVerb("delete");
        msg.setHeader(header);
        /* query the server for the mRID being deleted */
        CIMIdentitiesQueriesRequestType request = new CIMIdentitiesQueriesRequestType();
        CIMIdentitiesQueries var = new CIMIdentitiesQueries();
        EndDeviceGroup edg = new EndDeviceGroup();
        // can be null, '?', or '""' to receive all data, else set mRID
        edg.setMRID(mRID);
        message.setRequest(request);
        message.getRequest().setCIMIdentitiesQueries(var);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup().add(0, edg);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup();
        try {
            response = queryCIMIdentities(message);
        } catch (QueryCIMIdentitiesFaultMessage ex) {
            return ex.getMessage();
        }
        /* set outgoing deletion message to contain ALL data about the mRID */
        msg.getPayload().setCIMIdentities(response.getPayload().getCIMIdentities());
        try {
            if (response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() == null)
                throw new IndexOutOfBoundsException("mRID doesn't exist");
            deletedCIMIdentitiesRequest(msg);
            String confirmation = "Data deleted:<br>" + "<br><strong>mRID:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() + "<br><strong>Name:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "<br><strong>NameType Name:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "<br><strong>NameType Description:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "<br><strong>NameTypeAuthority Name:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "<br><strong>NameTypeAuthority Description:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription();
            return confirmation;
        } catch (FaultMessage ex) {
            error = ex.getMessage();
            return error;
        } catch (IndexOutOfBoundsException err) {
            return "<p style=\"color:red\"><strong>No deletion made.<br>Provided UUID does not currently exist in the database</strong>.<br>Please double check input UUID.<br>";
        }
    } else /* modification handling */
    if (action.equals("modify")) {
        HeaderType header = new HeaderType();
        header.setNoun("CIMIdentities");
        header.setVerb("change");
        msg.setHeader(header);
        /* query the server for the mRID being modified */
        CIMIdentitiesQueriesRequestType request = new CIMIdentitiesQueriesRequestType();
        CIMIdentitiesQueries var = new CIMIdentitiesQueries();
        EndDeviceGroup edg = new EndDeviceGroup();
        // can be null, '?', or '""' to receive all data, else set mRID
        edg.setMRID(mRID);
        message.setRequest(request);
        message.getRequest().setCIMIdentitiesQueries(var);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup().add(0, edg);
        message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup();
        try {
            response = queryCIMIdentities(message);
        } catch (QueryCIMIdentitiesFaultMessage ex) {
            return response.getReply().getError().get(0).getDetails();
        }
        try {
            if (response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() == null)
                throw new IndexOutOfBoundsException("mRID doesn't exist");
            changedCIMIdentitiesRequest(msg);
            String confirmation = "Data modified:<br>" + "<strong>Previous data:</strong><br>" + "<br><strong>mRID:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getIdentifiedObject().getMRID() + "<br><strong>Name:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "<br><strong>NameType Name:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "<br><strong>NameType Description:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "<br><strong>NameTypeAuthority Name:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "<br><strong>NameTypeAuthority Description:</strong> " + response.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription() + "<br><br><br><strong>New data:</strong><br>" + "<br><strong>Name:</strong> " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getName() + "<br><strong>NameType Name:</strong> " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getName() + "<br><strong>NameType Description:</strong> " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getDescription() + "<br><strong>NameTypeAuthority Name:</strong> " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName() + "<br><strong>NameTypeAuthority Description:</strong> " + msg.getPayload().getCIMIdentities().getCIMIdentity().get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription();
            return confirmation;
        } catch (FaultMessage ex) {
            error = ex.getMessage();
            return error;
        } catch (IndexOutOfBoundsException err) {
            return "<p style=\"color:red\"><strong>Provided UUID does not currently exist in the database</strong>.<br>Please double check input UUID.<br>";
        }
    } else
        return "Error:  Invalid response received.\n";
}
Also used : CIMIdentitiesQueries(ch.iec.tc57._2016.cimidentitiesqueries_.CIMIdentitiesQueries) ArrayList(java.util.ArrayList) NameType(com.epri._2016.cimidentities_.NameType) Name(com.epri._2016.cimidentities_.Name) QueryCIMIdentitiesFaultMessage(ch.iec.tc57._2016.querycimidentities.QueryCIMIdentitiesFaultMessage) CIMIdentitiesQueriesRequestType(ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesRequestType) EndDeviceGroup(ch.iec.tc57._2016.cimidentitiesqueries_.EndDeviceGroup) CIMIdentitiesResponseMessageType(ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType) CIMIdentitiesPayloadType(ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesPayloadType) CIMIdentity(com.epri._2016.cimidentities_.CIMIdentity) CIMIdentitiesResponseMessageType(ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType) NameTypeAuthority(com.epri._2016.cimidentities_.NameTypeAuthority) FaultMessage(ch.iec.tc57._2016.sendcimidentities.FaultMessage) QueryCIMIdentitiesFaultMessage(ch.iec.tc57._2016.querycimidentities.QueryCIMIdentitiesFaultMessage) HeaderType(ch.iec.tc57._2011.schema.message.HeaderType) IdentifiedObject(com.epri._2016.cimidentities_.IdentifiedObject) CIMIdentities(com.epri._2016.cimidentities_.CIMIdentities)

Example 4 with NameType

use of com.epri._2016.cimidentities.NameType in project CIM-Identities by epri-dev.

the class GetCIMIdentities method queryCIMIdentities.

public ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesResponseMessageType queryCIMIdentities(ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesRequestMessageType message) throws QueryCIMIdentitiesFaultMessage {
    // create response message object
    ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesResponseMessageType response = new ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesResponseMessageType();
    // create header object to assign to response.  Set to "get" by default
    ch.iec.tc57._2011.schema.message.HeaderType header = new ch.iec.tc57._2011.schema.message.HeaderType();
    header.setVerb("get");
    header.setNoun("CIM Identities");
    response.setHeader(header);
    // create reply object that if successfully is "OK", if not is "FAILED"
    ReplyType value = new ReplyType();
    value.setResult("OK");
    response.setReply(value);
    // create Payload object for response message
    ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesPayloadType payload = new ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesPayloadType();
    response.setPayload(payload);
    try {
        String query;
        String uuid = message.getRequest().getCIMIdentitiesQueries().getEndDeviceGroup().get(0).getMRID();
        if (uuid == null || uuid.equals("") || uuid.equals("?")) {
            query = "SELECT *" + "FROM public.\"NameType\" as nt, public.\"Name\" as n, " + "public.\"NameTypeAuthority\" as nta " + "WHERE n.n_pkey = nt.nt_pkey AND " + "nt.nt_pkey = nta.nta_pkey " + "ORDER BY n.n_name ASC;";
        } else {
            query = "SELECT *" + "FROM public.\"NameType\" as nt, public.\"Name\" as n, " + "public.\"NameTypeAuthority\" as nta " + "WHERE n.n_pkey = '" + uuid + "' AND " + "n.n_pkey = nt.nt_pkey AND " + "nt.nt_pkey = nta.nta_pkey";
        }
        Class.forName("org.postgresql.Driver");
        Connection conn = DriverManager.getConnection(host, uName, password);
        Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
        ResultSet rs = stmt.executeQuery(query);
        int size = 0;
        if (rs != null) {
            rs.beforeFirst();
            rs.last();
            size = rs.getRow();
            rs.beforeFirst();
            CIMIdentities cimIDs = new CIMIdentities();
            payload.setCIMIdentities(cimIDs);
            ArrayList<CIMIdentity> cim = (ArrayList<CIMIdentity>) payload.getCIMIdentities().getCIMIdentity();
            // sets size of the ArrayList to size of the Result Set
            cim.ensureCapacity(size);
            int i = 0;
            while (rs.next()) {
                // create new CIM Identity objects for each object that will be assigned later
                // when querying the database
                CIMIdentity cimid = new CIMIdentity();
                IdentifiedObject idObj = new IdentifiedObject();
                Name name = new Name();
                cim.add(i, cimid);
                List<Name> names = cim.get(i).getNames();
                NameType nameType = new NameType();
                NameTypeAuthority nameTypeAuthority = new NameTypeAuthority();
                // set the mRID
                idObj.setMRID(rs.getString("n_pkey"));
                cim.get(i).setIdentifiedObject(idObj);
                names.add(0, name);
                name.setName(rs.getString("n_name"));
                names.get(0).setName(name.getName());
                nameType.setName(rs.getString("nt_name"));
                nameType.setDescription(rs.getString("nt_description"));
                names.get(0).setNameType(nameType);
                nameTypeAuthority.setName(rs.getString("nta_name"));
                nameTypeAuthority.setDescription(rs.getString("nta_description"));
                names.get(0).getNameType().setNameTypeAuthority(nameTypeAuthority);
                i++;
            }
            rs.close();
            stmt.close();
            conn.close();
        } else {
            CIMIdentities cimIDs = new CIMIdentities();
            payload.setCIMIdentities(cimIDs);
            ArrayList<CIMIdentity> cim = (ArrayList<CIMIdentity>) payload.getCIMIdentities().getCIMIdentity();
            cim.ensureCapacity(size);
            CIMIdentity cimid = new CIMIdentity();
            IdentifiedObject idObj = new IdentifiedObject();
            Name name = new Name();
            cim.add(0, cimid);
            List<Name> names = cim.get(0).getNames();
            NameType nameType = new NameType();
            NameTypeAuthority nameTypeAuthority = new NameTypeAuthority();
            // set the mRID
            idObj.setMRID(rs.getString(""));
            cim.get(0).setIdentifiedObject(idObj);
            names.add(0, name);
            name.setName(rs.getString(""));
            names.get(0).setName(name.getName());
            nameType.setName(rs.getString(""));
            nameType.setDescription(rs.getString(""));
            names.get(0).setNameType(nameType);
            nameTypeAuthority.setName(rs.getString(""));
            nameTypeAuthority.setDescription(rs.getString(""));
            names.get(0).getNameType().setNameTypeAuthority(nameTypeAuthority);
        }
        response.setPayload(payload);
    } catch (Exception err) {
        value.setResult("Failed");
        err.printStackTrace();
    }
    response.setReply(value);
    return response;
}
Also used : ArrayList(java.util.ArrayList) NameType(com.epri._2016.cimidentities_.NameType) Name(com.epri._2016.cimidentities_.Name) ResultSet(java.sql.ResultSet) CIMIdentity(com.epri._2016.cimidentities_.CIMIdentity) Statement(java.sql.Statement) Connection(java.sql.Connection) NameTypeAuthority(com.epri._2016.cimidentities_.NameTypeAuthority) ReplyType(ch.iec.tc57._2011.schema.message.ReplyType) IdentifiedObject(com.epri._2016.cimidentities_.IdentifiedObject) CIMIdentities(com.epri._2016.cimidentities_.CIMIdentities)

Example 5 with NameType

use of com.epri._2016.cimidentities.NameType in project CIM-Identities by epri-dev.

the class CIMIdentities method changedCIMIdentitiesRequest.

public ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType changedCIMIdentitiesRequest(ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesEventMessageType message) throws FaultMessage {
    // Event message type only contains the header/payload
    // Response message type contains header/payload/reply
    // therefore, response message type must be set for CIMIdentitiesResponseMessageType
    ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType response = new ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType();
    ReplyType value = new ReplyType();
    // String result = value.getResult();
    value.setResult("OK");
    // set response header/payload/reply
    response.setHeader(message.getHeader());
    response.setPayload(message.getPayload());
    response.setReply(value);
    try {
        ArrayList<CIMIdentity> cim = (ArrayList<CIMIdentity>) response.getPayload().getCIMIdentities().getCIMIdentity();
        mRID = cim.get(0).getIdentifiedObject().getMRID();
        NName = cim.get(0).getNames().get(0).getName();
        NTName = cim.get(0).getNames().get(0).getNameType().getName();
        NTDes = cim.get(0).getNames().get(0).getNameType().getDescription();
        NTAName = cim.get(0).getNames().get(0).getNameType().getNameTypeAuthority().getName();
        NTADes = cim.get(0).getNames().get(0).getNameType().getNameTypeAuthority().getDescription();
        Connection con = DriverManager.getConnection(host, uName, password);
        Statement stmt = con.createStatement();
        // to-do:  Add error checking if "Randomly Generate" is selected
        String updateName = "UPDATE public.\"Name\" SET n_name = '" + NName + "' WHERE n_pkey = '" + mRID + "'";
        String updateNT = "UPDATE public.\"NameType\" SET nt_name = '" + NTName + "', nt_description = '" + NTDes + "' WHERE nt_pkey = '" + mRID + "'";
        String updateNTA = "UPDATE public.\"NameTypeAuthority\" SET nta_name = '" + NTAName + "', nta_description = '" + NTADes + "' WHERE nta_pkey = '" + mRID + "'";
        stmt.executeUpdate(updateName);
        stmt.executeUpdate(updateNT);
        stmt.executeUpdate(updateNTA);
        stmt.close();
        con.close();
        return response;
    } catch (SQLException err) {
        value.setResult("FAILED");
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        err.printStackTrace(pw);
        value.getError().get(0).setDetails(sw.toString());
        response.setReply(value);
        return response;
    }
}
Also used : CIMIdentity(com.epri._2016.cimidentities_.CIMIdentity) SQLException(java.sql.SQLException) Statement(java.sql.Statement) ArrayList(java.util.ArrayList) Connection(java.sql.Connection) StringWriter(java.io.StringWriter) ReplyType(ch.iec.tc57._2011.schema.message.ReplyType) PrintWriter(java.io.PrintWriter)

Aggregations

ArrayList (java.util.ArrayList)5 CIMIdentity (com.epri._2016.cimidentities_.CIMIdentity)4 ReplyType (ch.iec.tc57._2011.schema.message.ReplyType)3 Connection (java.sql.Connection)3 Statement (java.sql.Statement)3 HeaderType (ch.iec.tc57._2011.schema.message.HeaderType)2 CIMIdentitiesPayloadType (ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesPayloadType)2 CIMIdentitiesQueriesRequestType (ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesRequestType)2 QueryCIMIdentitiesFaultMessage (ch.iec.tc57._2016.querycimidentities.QueryCIMIdentitiesFaultMessage)2 FaultMessage (ch.iec.tc57._2016.sendcimidentities.FaultMessage)2 CIMIdentities (com.epri._2016.cimidentities_.CIMIdentities)2 IdentifiedObject (com.epri._2016.cimidentities_.IdentifiedObject)2 Name (com.epri._2016.cimidentities_.Name)2 NameType (com.epri._2016.cimidentities_.NameType)2 NameTypeAuthority (com.epri._2016.cimidentities_.NameTypeAuthority)2 PrintWriter (java.io.PrintWriter)2 StringWriter (java.io.StringWriter)2 ResultSet (java.sql.ResultSet)2 SQLException (java.sql.SQLException)2 CIMIdentitiesResponseMessageType (ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType)1