Search in sources :

Example 6 with Name

use of com.epri._2016.cimidentities.Name 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 7 with Name

use of com.epri._2016.cimidentities.Name 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 HeaderType (ch.iec.tc57._2011.schema.message.HeaderType)3 ReplyType (ch.iec.tc57._2011.schema.message.ReplyType)3 CIMIdentitiesQueriesRequestType (ch.iec.tc57._2016.cimidentitiesqueriesmessage.CIMIdentitiesQueriesRequestType)3 QueryCIMIdentitiesFaultMessage (ch.iec.tc57._2016.querycimidentities.QueryCIMIdentitiesFaultMessage)3 Connection (java.sql.Connection)3 Statement (java.sql.Statement)3 CIMIdentitiesPayloadType (ch.iec.tc57._2016.cimidentitiesmessage.CIMIdentitiesPayloadType)2 CIMIdentitiesQueries (ch.iec.tc57._2016.cimidentitiesqueries_.CIMIdentitiesQueries)2 EndDeviceGroup (ch.iec.tc57._2016.cimidentitiesqueries_.EndDeviceGroup)2 FaultMessage (ch.iec.tc57._2016.sendcimidentities.FaultMessage)2 IdentifiedObject (com.epri._2016.cimidentities.IdentifiedObject)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