Search in sources :

Example 1 with CIMIdentitiesResponseMessageType

use of ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType 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 2 with CIMIdentitiesResponseMessageType

use of ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesResponseMessageType 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

ReplyType (ch.iec.tc57._2011.schema.message.ReplyType)2 CIMIdentity (com.epri._2016.cimidentities_.CIMIdentity)2 PrintWriter (java.io.PrintWriter)2 StringWriter (java.io.StringWriter)2 Connection (java.sql.Connection)2 SQLException (java.sql.SQLException)2 Statement (java.sql.Statement)2 ArrayList (java.util.ArrayList)2 ResultSet (java.sql.ResultSet)1