All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hpccsystems.ws.client.extended.HPCCWsAttributesClient Maven / Gradle / Ivy

package org.hpccsystems.ws.client.extended;

import java.io.FileNotFoundException;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.axis2.AxisFault;
import org.apache.axis2.client.Stub;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
import org.hpccsystems.ws.client.BaseHPCCWsClient;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.ArrayOfCheckinAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.ArrayOfCheckoutAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.ArrayOfDeleteAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.ArrayOfECLAttribute;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.ArrayOfRenameAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.ArrayOfSaveAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.CheckinAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.CheckinAttributes;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.CheckoutAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.CheckoutAttributes;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.CreateAttribute;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.CreateAttributeResponse;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.DeleteAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.DeleteAttributes;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.DeleteModule;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.DeleteModuleResponse;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.ECLAttribute;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.EspSoapFault;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.EspStringArray;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.FindAttributes;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.FindAttributesResponse;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.GetAttribute;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.GetAttributeResponse;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.GetAttributes;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.GetAttributesResponse;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.RenameAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.RenameAttributes;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.SaveAttributeRequest;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.SaveAttributes;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.UpdateAttributesResponse;
import org.hpccsystems.ws.client.gen.axis2.wsattributes.latest.WsAttributesStub;
import org.hpccsystems.ws.client.gen.axis2.wstopology.latest.WsTopologyStub;
import org.hpccsystems.ws.client.utils.Connection;
import org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper;
import org.hpccsystems.ws.client.wrappers.ECLAttributeWrapper;
import org.hpccsystems.ws.client.wrappers.EspSoapFaultWrapper;
import org.hpccsystems.ws.client.wrappers.GetAttributesResponseWrapper;
import org.hpccsystems.ws.client.wrappers.GetAttributesWrapper;

/**
 * 

HPCCWsAttributesClient class.

* */ public class HPCCWsAttributesClient extends BaseHPCCWsClient { private static final Logger log = LogManager.getLogger(HPCCWsAttributesClient.class); /** Constant WSATTRIBUTESWSDLURI="/WsAttributes" */ public static final String WSATTRIBUTESWSDLURI = "/WsAttributes"; private static int DEFAULTSERVICEPORT = -1; private static String WSDLURL = null; /** * Load WSDLURL. */ private static void loadWSDLURL() { try { WSDLURL = getServiceWSDLURL(new WsAttributesStub()); DEFAULTSERVICEPORT = (new URL(WSDLURL)).getPort(); } catch (AxisFault | MalformedURLException e) { log.error("Unable to establish original WSDL URL"); log.error(e.getLocalizedMessage()); } } /** * Gets the service URI. * * @return the service URI */ public String getServiceURI() { return WSATTRIBUTESWSDLURI; } /** * Gets the service WSDLURL. * * @return the service WSDLURL */ public static String getServiceWSDLURL() { if (WSDLURL == null) { loadWSDLURL(); } return WSDLURL; } /** * Gets the service WSDL port. * * @return the service WSDL port */ public static int getServiceWSDLPort() { if (WSDLURL == null) { loadWSDLURL(); } return DEFAULTSERVICEPORT; } /** * Gets the. * * @param connection * the connection * @return the HPCC ws attributes client */ public static HPCCWsAttributesClient get(Connection connection) { return new HPCCWsAttributesClient(connection); } /** * Gets the. * * @param protocol * the protocol * @param targetHost * the target host * @param targetPort * the target port * @param user * the user * @param pass * the pass * @return the HPCC ws attributes client */ public static HPCCWsAttributesClient get(String protocol, String targetHost, String targetPort, String user, String pass) { Connection conn = new Connection(protocol,targetHost,targetPort); conn.setCredentials(user, pass); return new HPCCWsAttributesClient(conn); } /** * Gets the. * * @param protocol * the protocol * @param targetHost * the target host * @param targetPort * the target port * @param user * the user * @param pass * the pass * @param timeout * the timeout * @return the HPCC ws attributes client */ public static HPCCWsAttributesClient get(String protocol, String targetHost, String targetPort, String user, String pass, int timeout) { Connection conn = new Connection(protocol,targetHost,targetPort); conn.setCredentials(user, pass); conn.setConnectTimeoutMilli(timeout); conn.setSocketTimeoutMilli(timeout); return new HPCCWsAttributesClient(conn); } /** * Instantiates a new HPCC ws attributes client. * * @param baseConnection * the base connection */ protected HPCCWsAttributesClient(Connection baseConnection) { initWsAttributesClientStub(baseConnection); } /** * Initializes the service's underlying soap proxy. Should only be used by constructors * * @param connection * the connection */ private void initWsAttributesClientStub(Connection connection) { initBaseWsClient(connection, false); //No need to preemptively fetch HPCC build version, Containerized mode try { stub = setStubOptions(new WsAttributesStub(connection.getBaseUrl()+WSATTRIBUTESWSDLURI), connection); } catch (AxisFault e) { initErrMessage = "Could not initialize WsAttributesStub - Review all HPCC connection values"; if (!e.getLocalizedMessage().isEmpty()) { initErrMessage += "\n" + e.getLocalizedMessage(); } } if (!initErrMessage.isEmpty()) log.error(initErrMessage); } /** * Check whether an attribute exists. * * @param modulename * - ECL Module name containing the attribute to check * @param attributename * - Attribute to check * @param type * the type * @return true if the attribute exists, false if it does not * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public boolean attributeExists(String modulename, String attributename, String type) throws Exception, ArrayOfEspExceptionWrapper { Listitems = findItems(modulename, attributename, type, null, null, null); if (items.size()>0) { return true; } return false; } /** * Search for and retrieve the attribute metadata for attributes from a repository. * * @param modulename * - modulename of attributes to find. Entire name will be matched. * @param attributename * - attributename of attributes to find. Entire name will be matched. * @param type * the type * @param username * - owner of attributes to find. Entire name will be matched * @param anytext * - text string to find. It is implicitly surrounded by wildcards. will match any module name containing * the pattern, attribute name containing the pattern, or attribute containing ecl that contains the * pattern * @param changedSince * - only return attributes changes since this time * @return a list of ECLAttributeInfo * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public List findItems(String modulename, String attributename, String type, String username, String anytext, String changedSince) throws Exception, ArrayOfEspExceptionWrapper { verifyStub(); //Throws if stub not available if (modulename == null && attributename == null && username == null && type==null && anytext == null && changedSince == null) { throw new Exception("At least one find criteria is required."); } FindAttributes params = new FindAttributes(); if (modulename != null) { params.setModuleName(modulename); } if (attributename != null) { params.setAttributeName(attributename); } if (username != null) { params.setUserName(username); } if (type != null) { String[] types=type.split(","); EspStringArray typelist = new EspStringArray(); typelist.setItem(types); params.setTypeList(typelist); } if (anytext != null) { params.setPattern(anytext); } FindAttributesResponse resp = null; try { resp = ((WsAttributesStub)stub).findAttributes(params); } catch (RemoteException e) { throw new Exception ("HPCCWsAttributesClient findItems encountered RemoteException.", e); } catch (EspSoapFault e) { handleEspSoapFaults(new EspSoapFaultWrapper(e), "Could Not perform findItems"); } List results = new ArrayList(); if (resp != null) { if (resp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(resp.getExceptions()), "Could Not perform findItems"); if (resp.getOutAttributes() != null) { ECLAttribute[] eclAttribute = resp.getOutAttributes().getECLAttribute(); for (int i=0; i < eclAttribute.length;i++) { results.add(new ECLAttributeWrapper(eclAttribute[i])); } } } return results; } /** * Get the text of an attribute from a repo. * * @param modulename * - module name of the attribute * @param attributename * - attribute name of the attribute * @param type * the type * @return text contained by the attribute * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public String getAttributeText(String modulename, String attributename,String type) throws Exception, ArrayOfEspExceptionWrapper { verifyStub(); //Throws if stub not available GetAttribute params = new GetAttribute(); params.setAttributeName(attributename); params.setModuleName(modulename); params.setType(type); params.setGetText(true); GetAttributeResponse response = null; try { response = ((WsAttributesStub)stub).getAttribute(params); } catch (RemoteException e) { throw new Exception ("HPCCWsAttributesClient getAttributeTest encountered RemoteException.", e); } catch (EspSoapFault e) { handleEspSoapFaults(new EspSoapFaultWrapper(e), "Could Not perform getAttributeText"); } if (response != null) { if (response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions()), "Could Not perform getAttributeText"); if (response.getOutAttribute() != null) { return response.getOutAttribute().getText(); } } return null; } /** * Rename an attribute in a legacy repo. * * @param modulename * -existing module name that will be renamed * @param attributename * - existing attributename that will be renamed * @param newmodulename * - new module name to rename module to * @param newattributename * - new attribute name to rename attribute to * @return ECL attribute of the renamed attribute * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public ECLAttribute renameAttribute(String modulename, String attributename, String newmodulename, String newattributename) throws Exception, ArrayOfEspExceptionWrapper { if ((modulename == null && newmodulename != null) || (newmodulename == null && modulename != null)) { throw new Exception("If modulename or newmodulename is specified, both must be specified"); } if ((attributename == null && newattributename != null) || (newattributename == null && attributename != null)) { throw new Exception("If attributename or newattributename is specified, both must be specified"); } verifyStub(); //Throws if stub not available RenameAttributeRequest req = new RenameAttributeRequest(); req.setAttributeName(attributename); req.setModuleName(modulename); req.setNewAttributeName(newattributename); req.setNewModuleName(newmodulename); RenameAttributes request = new RenameAttributes(); ArrayOfRenameAttributeRequest arrayofrenameattributes = new ArrayOfRenameAttributeRequest(); RenameAttributeRequest[] param = new RenameAttributeRequest[1]; arrayofrenameattributes.setRenameAttributeRequest(param); request.setAttributes(arrayofrenameattributes); UpdateAttributesResponse response = null; try { response = ((WsAttributesStub)stub).renameAttributes(request); } catch (RemoteException e) { throw new Exception ("HPCCWsAttributesClient renameAttribute encountered RemoteException.", e); } catch (EspSoapFault e) { handleEspSoapFaults(new EspSoapFaultWrapper(e), "Could Not perform renameAttribute"); } if (response != null) { if (response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions()), "Could Not perform renameAttribute"); ArrayOfECLAttribute outAttributes = response.getOutAttributes(); if (outAttributes != null) { ECLAttribute[] eclAttributes = outAttributes.getECLAttribute(); if (eclAttributes != null && eclAttributes.length == 1) return eclAttributes[0]; } } return null; } /** * Creates the or update attributes. * * @param in * - a list of ECLAttributeInfo objects to create or update * @param checkoutin * - if true, check out before updating and check in afterwards * @param checkindesc * - if checkoutin is true, this is the checkin message * @return - a list of updated eclattributeinfo objects * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public List createOrUpdateAttributes(List in, boolean checkoutin, String checkindesc) throws Exception, ArrayOfEspExceptionWrapper { List result=new ArrayList(); if (in==null || in.size()==0) { return result; } if (checkoutin == true && (checkindesc == null || checkindesc.trim().length() == 0)) { throw new Exception("Checkin comment is required if checking attribute out / in"); } //validate items to be created String allers=""; for (ECLAttributeWrapper item: in) { try { item.validate(); } catch (Exception e) { allers=allers + e.getMessage() + "\n"; } } if (!allers.isEmpty()) { throw new Exception(allers); } //get a cached copy of the modules being updated to check whether items must be created //convert objects to needed create/update soap object arrays Map> founditems = new HashMap>(); List tocreate = new ArrayList(); SaveAttributeRequest[] toupdate = new SaveAttributeRequest[in.size()]; CheckoutAttributeRequest[] tocheckout = new CheckoutAttributeRequest[in.size()]; CheckinAttributeRequest[] tocheckin = new CheckinAttributeRequest[in.size()]; for (int i=0; i < in.size();i++) { ECLAttributeWrapper item = in.get(i); if (!founditems.containsKey(item.getModuleName().toLowerCase())) { List found = this.findItems(item.getModuleName(),null,null,null,null,null); List cache=new ArrayList(); for (ECLAttributeWrapper f : found) { cache.add(f.getUniqueName()); } founditems.put(item.getModuleName().toLowerCase(),cache); } if (!founditems.get(item.getModuleName().toLowerCase()).contains(item.getUniqueName())) { tocreate.add(item.toCreateAttribute()); } toupdate [i] = item.toSaveAttributeRequest(); tocheckout [i] = item.toCheckoutAttributeRequest(); tocheckin [i] = item.toCheckinAttributeRequest(checkindesc); } //create nonexistant attributes verifyStub(); for (CreateAttribute req : tocreate) { CreateAttributeResponse resp = ((WsAttributesStub)stub).createAttribute(req); if (resp != null) { if (resp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(resp.getExceptions()), "Could not create attribute(s)"); } log.trace("Created " + req.getType() + " attribute " + req.getModuleName() + "." + req.getAttributeName()); } //check out attributes if (checkoutin) { CheckoutAttributes params = new CheckoutAttributes(); ArrayOfCheckoutAttributeRequest tocheckoutatts = new ArrayOfCheckoutAttributeRequest(); tocheckoutatts.setCheckoutAttributeRequest(tocheckout); params.setAttributes(tocheckoutatts); UpdateAttributesResponse resp = ((WsAttributesStub)stub).checkoutAttributes(params); if (resp != null) { if (resp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(resp.getExceptions())); } } //update attributes SaveAttributes params = new SaveAttributes(); ArrayOfSaveAttributeRequest toupdateatts = new ArrayOfSaveAttributeRequest(); toupdateatts.setSaveAttributeRequest(toupdate); params.setAttributes(toupdateatts); UpdateAttributesResponse resp = ((WsAttributesStub)stub).saveAttributes(params); if (resp != null) { if (resp != null) { if (resp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(resp.getExceptions())); } ArrayOfECLAttribute outAttributes = resp.getOutAttributes(); if (outAttributes != null) { ECLAttribute[] eclAttributes = outAttributes.getECLAttribute(); for (int i=0; i < eclAttributes.length; i++) { result.add(new ECLAttributeWrapper(eclAttributes[i])); } } } //check in attributes if (checkoutin) { CheckinAttributes inparams = new CheckinAttributes(); ArrayOfCheckinAttributeRequest tocheckinatts = new ArrayOfCheckinAttributeRequest(); tocheckinatts.setCheckinAttributeRequest(tocheckin); inparams.setAttributes(tocheckinatts); UpdateAttributesResponse upresp = ((WsAttributesStub)stub).checkinAttributes(inparams); if (upresp != null) { if (upresp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(upresp.getExceptions())); } } return result; } /** * Create/Update an attribute in a legacy repository. * * @param item * the item * @param checkoutin * - whether to check the attribute out/in before doing this * @param checkindesc * - if checkoutin=true, the description to append to the checkin * @return updated ECLAttributeItem for created/updated item * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public ECLAttributeWrapper createOrUpdateAttribute(ECLAttributeWrapper item, boolean checkoutin, String checkindesc) throws Exception, ArrayOfEspExceptionWrapper { if (item==null) { return null; } item.validate(); if (checkoutin == true && (checkindesc == null || checkindesc.trim().length() == 0)) { throw new Exception("Checkin comment is required if checking attribute out / in"); } verifyStub(); if (!this.attributeExists(item.getModuleName(),item.getName(),item.getType())) { CreateAttributeResponse response = ((WsAttributesStub)stub).createAttribute(item.toCreateAttribute()); if (response != null) { if (response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions())); } log.trace("Created " + item.getType() + " attribute " + item.getModuleName() + "." + item.getName()); } if (checkoutin) { this.checkoutAttribute(item.getModuleName(),item.getName()); } SaveAttributeRequest[] arr = { item.toSaveAttributeRequest() }; SaveAttributes params = new SaveAttributes(); ArrayOfSaveAttributeRequest arrayofattributes = new ArrayOfSaveAttributeRequest(); arrayofattributes.setSaveAttributeRequest(arr); params.setAttributes(arrayofattributes); UpdateAttributesResponse resp = ((WsAttributesStub)stub).saveAttributes(params); log.trace("Updated text of " + item.getType() + " attribute " + item.getModuleName() + "." + item.getName()); if (resp != null) { if (resp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(resp.getExceptions())); if (checkoutin) { this.checkinAttribute(item.getModuleName(), item.getName(), checkindesc); } if (resp.getOutAttributes() != null) { ECLAttribute[] eclAttributes = resp.getOutAttributes().getECLAttribute(); if (eclAttributes != null && eclAttributes.length > 0) return new ECLAttributeWrapper(eclAttributes[0]); } } return null; } /** * Update an attribute in a legacy repository. * * @param modulename * - module name to update * @param attributename * - attribute name to update * @param type * the type * @param text * - text to update the attribute to * @param checkoutin * - whether to check the attribute out/in before doing this * @param checkindesc * - if checkoutin=true, the description to append to the checkin * @return the ECL attribute * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public ECLAttribute updateAttribute(String modulename, String attributename, String type, String text, Boolean checkoutin, String checkindesc) throws Exception, ArrayOfEspExceptionWrapper { if (checkoutin == null) { checkoutin = false; } if (modulename == null || attributename == null || text == null) { throw new Exception("Module name, attribute name and text are required"); } if (checkoutin == true && (checkindesc == null || checkindesc.trim().length() == 0)) { throw new Exception("Checkin comment is required if checking attribute out / in"); } if (!this.attributeExists(modulename, attributename,type)) { throw new FileNotFoundException("Cannot update " + modulename + "." + attributename + ", attribute does not exist"); } verifyStub(); if (checkoutin) { this.checkoutAttribute(modulename, attributename); } SaveAttributeRequest req = new SaveAttributeRequest(); req.setModuleName(modulename); req.setAttributeName(attributename); req.setText(text); SaveAttributeRequest[] arr = { req }; ArrayOfSaveAttributeRequest arrayofatts = new ArrayOfSaveAttributeRequest(); arrayofatts.setSaveAttributeRequest(arr); SaveAttributes saveattributes = new SaveAttributes(); saveattributes.setAttributes(arrayofatts); UpdateAttributesResponse resp = ((WsAttributesStub)stub).saveAttributes(saveattributes); if (resp != null) { if (resp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(resp.getExceptions())); if (checkoutin) { this.checkinAttribute(modulename, attributename, checkindesc); } if (resp.getOutAttributes() != null) { ECLAttribute[] eclAttributes = resp.getOutAttributes().getECLAttribute(); if (eclAttributes != null && eclAttributes.length > 0) return eclAttributes[0]; } } return null; } /** * Check in an attribute in an HPCC Repository. * * @param modulename * - module name to check in * @param attributename * - attribute name to check in * @param checkindesc * - check in comment * @return ECLAttribute of checked in attribute * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public ECLAttribute checkinAttribute(String modulename, String attributename, String checkindesc) throws Exception, ArrayOfEspExceptionWrapper { if (modulename == null || attributename == null) { throw new Exception("Module name and attribute name are required"); } if (checkindesc == null || checkindesc.trim().length() == 0) { throw new Exception("Checkin comment is required if checking attribute out / in"); } verifyStub(); CheckinAttributeRequest req = new CheckinAttributeRequest(); req.setAttributeName(attributename); req.setModuleName(modulename); req.setDescription(checkindesc); CheckinAttributeRequest[] arr = { req }; CheckinAttributes params = new CheckinAttributes(); ArrayOfCheckinAttributeRequest arrayofcheckinatts = new ArrayOfCheckinAttributeRequest(); arrayofcheckinatts.setCheckinAttributeRequest(arr); params.setAttributes(arrayofcheckinatts); UpdateAttributesResponse response = ((WsAttributesStub)stub).checkinAttributes(params); if (response == null) { return null; } if (response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions())); if (response.getOutAttributes() != null) { ECLAttribute[] eclAttributes = response.getOutAttributes().getECLAttribute(); if (eclAttributes != null && eclAttributes.length > 0) return eclAttributes[0]; } return null; } /** * Check out an attribute in a legacy repository. * * @param modulename * - module to check out * @param attributename * - attribute to check out * @return ECLAttribute of checked out attribute * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public ECLAttribute checkoutAttribute(String modulename, String attributename) throws Exception, ArrayOfEspExceptionWrapper { if (modulename == null || attributename == null) { throw new Exception("Module name and attribute name are required"); } verifyStub(); CheckoutAttributeRequest req = new CheckoutAttributeRequest(); req.setAttributeName(attributename); req.setModuleName(modulename); CheckoutAttributeRequest[] arr = { req }; CheckoutAttributes params = new CheckoutAttributes(); ArrayOfCheckoutAttributeRequest arrayofCheckoutAtts = new ArrayOfCheckoutAttributeRequest(); arrayofCheckoutAtts.setCheckoutAttributeRequest(arr); params.setAttributes(arrayofCheckoutAtts); UpdateAttributesResponse response = ((WsAttributesStub)stub).checkoutAttributes(params); if (response == null) { return null; } if (response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions())); if (response.getOutAttributes() != null) { ECLAttribute[] eclAttributes = response.getOutAttributes().getECLAttribute(); if (eclAttributes != null && eclAttributes.length > 0) return eclAttributes[0]; } return null; } /** * Create an attribute in an HPCC Legacy Repository. * * @param modulename * - module name to create * @param attributename * - attribute name to create * @param type * the type * @param text * the text * @param checkin * - if true, check this attribute in after creating it * @param checkindesc * - checkin comment. Required if checkin=true * @return the ECL Attribute of the created object * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public ECLAttribute createAttribute(String modulename, String attributename, String type,String text, Boolean checkin, String checkindesc) throws Exception, ArrayOfEspExceptionWrapper { if (checkin == null) { checkin = false; } if (modulename == null || attributename == null || text == null) { throw new Exception("Module name, attribute name and text are required"); } if (checkin == true && (checkindesc == null || checkindesc.trim().length() == 0)) { throw new Exception("Checkin comment is required if checking attribute in"); } if (this.attributeExists(modulename, attributename,type)) { throw new Exception(modulename + "." + attributename + " already exists"); } verifyStub(); CreateAttribute req = new CreateAttribute(); req.setModuleName(modulename); req.setAttributeName(attributename); req.setType(type); CreateAttributeResponse response = ((WsAttributesStub)stub).createAttribute(req); if (response == null) { return null; } if (response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions())); ECLAttribute attr = updateAttribute(modulename, attributename, type, text, checkin, checkindesc); return attr; } /** * Delete a module from the remote repository. * * @param modulename * - name of module to delete * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public void deleteModule(String modulename) throws Exception, ArrayOfEspExceptionWrapper { verifyStub(); DeleteModule parameters = new DeleteModule(); parameters.setModuleName(modulename); DeleteModuleResponse response = ((WsAttributesStub)stub).deleteModule(parameters); if (response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions())); } /** * delete an attribute from the remote repository. * * @param modulename * - name of module for attribute to delete * @param attributename * - name of attribute to delete * @return the list * @throws java.lang.Exception * the exception * @throws org.hpccsystems.ws.client.wrappers.ArrayOfEspExceptionWrapper * the array of esp exception wrapper */ public List deleteAttribute(String modulename,String attributename) throws Exception, ArrayOfEspExceptionWrapper { verifyStub(); DeleteAttributeRequest dar = new DeleteAttributeRequest(); DeleteAttributes parameters = new DeleteAttributes(); dar.setAttributeName(attributename); dar.setModuleName(modulename); DeleteAttributeRequest[] arr = new DeleteAttributeRequest[]{dar}; ArrayOfDeleteAttributeRequest arrayofdeleteatts = new ArrayOfDeleteAttributeRequest(); arrayofdeleteatts.setDeleteAttributeRequest(arr); parameters.setAttributes(arrayofdeleteatts); UpdateAttributesResponse resp = ((WsAttributesStub)stub).deleteAttributes(parameters); if (resp.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(resp.getExceptions())); List results=new ArrayList(); if (resp.getOutAttributes() != null) { ECLAttribute[] arrayOfECLAttribute = resp.getOutAttributes().getECLAttribute(); for (int i=0; i < arrayOfECLAttribute.length; i++) { results.add(new ECLAttributeWrapper(arrayOfECLAttribute[i])); } } return results; } /** * Gets the attributes. * * @param label * the label * @param modulename * the modulename * @param typelist * the typelist * @return the attributes * @throws java.lang.Exception * the exception */ public GetAttributesResponseWrapper getAttributes(String label, String modulename, EspStringArray typelist) throws Exception { GetAttributes request = new GetAttributes(); request.setLabel(label); request.setModuleName(modulename); request.setTypeList(typelist); return getAttributes(new GetAttributesWrapper(request)); } /** * Gets the attributes. * * @param request * the request * @return the attributes * @throws java.lang.Exception * the exception */ public GetAttributesResponseWrapper getAttributes(GetAttributesWrapper request) throws Exception { verifyStub(); GetAttributesResponse response = null; try { response = ((WsAttributesStub)stub).getAttributes(request.getRaw()); } catch (RemoteException e) { throw new Exception ("HPCCWsAttributes.getAttributes() encountered RemoteException.", e); } if (response != null && response.getExceptions() != null) handleEspExceptions(new ArrayOfEspExceptionWrapper(response.getExceptions()), "Could not get attributes"); return new GetAttributesResponseWrapper(response); } /* (non-Javadoc) * @see org.hpccsystems.ws.client.BaseHPCCWsClient#getDefaultStub() */ /** {@inheritDoc} */ @Override public Stub getDefaultStub() throws AxisFault { return new WsAttributesStub(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy