From 4a51a8f96715ffb2a42189b93b9fa91b453b8530 Mon Sep 17 00:00:00 2001 From: sg481n Date: Thu, 3 Aug 2017 17:39:12 -0400 Subject:  [AAF-21] Initial code import MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Ia1dd196befd061f6ba0c2be6bf4456a30ea50f97 Signed-off-by: sg481n --- .../main/java/com/att/cadi/client/AAFClient.java | 199 +++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 client/src/main/java/com/att/cadi/client/AAFClient.java (limited to 'client/src/main/java/com/att/cadi/client/AAFClient.java') diff --git a/client/src/main/java/com/att/cadi/client/AAFClient.java b/client/src/main/java/com/att/cadi/client/AAFClient.java new file mode 100644 index 0000000..843f3b1 --- /dev/null +++ b/client/src/main/java/com/att/cadi/client/AAFClient.java @@ -0,0 +1,199 @@ +/******************************************************************************* + * ============LICENSE_START==================================================== + * * org.onap.aai + * * =========================================================================== + * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * * Copyright © 2017 Amdocs + * * =========================================================================== + * * Licensed under the Apache License, Version 2.0 (the "License"); + * * you may not use this file except in compliance with the License. + * * You may obtain a copy of the License at + * * + * * http://www.apache.org/licenses/LICENSE-2.0 + * * + * * Unless required by applicable law or agreed to in writing, software + * * distributed under the License is distributed on an "AS IS" BASIS, + * * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * * See the License for the specific language governing permissions and + * * limitations under the License. + * * ============LICENSE_END==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package com.att.cadi.client; + +import java.net.HttpURLConnection; +import java.util.HashMap; +import java.util.Map; + +import com.att.aft.dme2.api.DME2Manager; +import com.att.cadi.Access; +import com.att.cadi.config.Config; +import com.att.cadi.config.SecurityInfoC; +import com.att.cadi.http.HBasicAuthSS; +import com.att.cadi.http.HMangr; +import com.att.cadi.locator.DME2Locator; +import com.att.inno.env.APIException; +import com.att.rosetta.env.RosettaDF; +import com.att.rosetta.env.RosettaEnv; + +public class AAFClient { + private RosettaEnv env; + private Map,RosettaDF> map = new HashMap,RosettaDF>(); + HMangr hman; + HBasicAuthSS ss; + + public AAFClient(RosettaEnv env) throws Exception { + this.env = env; + Access access = new EnvAccess(env); + String user = access.getProperty(Config.AAF_MECHID,null); + String password = access.decrypt(access.getProperty(Config.AAF_MECHPASS,null), true); + + SecurityInfoC si = new SecurityInfoC(access); + DME2Manager dm = new DME2Manager("APIclient DME2Manager", System.getProperties()); + DME2Locator loc = new DME2Locator(access, dm, access.getProperty(Config.AAF_URL,null)); + + int TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, "30000")); + + hman = new HMangr(access, loc).readTimeout(TIMEOUT).apiVersion("2.0"); + ss = new HBasicAuthSS(user, password, si); + } + + public AAFClient(RosettaEnv env, DME2Manager dm) throws Exception { + this.env = env; + Access access = new EnvAccess(env); + String user = access.getProperty(Config.AAF_MECHID,null); + String password = access.decrypt(access.getProperty(Config.AAF_MECHPASS,null), true); + + SecurityInfoC si = new SecurityInfoC(access); + DME2Locator loc = new DME2Locator(access, dm, access.getProperty(Config.AAF_URL,null)); + + int TIMEOUT = Integer.parseInt(access.getProperty(Config.AAF_CONN_TIMEOUT, "30000")); + + hman = new HMangr(access, loc).readTimeout(TIMEOUT).apiVersion("2.0"); + ss = new HBasicAuthSS(user, password, si); + } + + @SuppressWarnings("unchecked") + private synchronized RosettaDF getDF(Class cls) throws APIException { + RosettaDF rdf; + synchronized (env) { + rdf = map.get(cls); + if(rdf==null) { + rdf = env.newDataFactory(cls); + map.put(cls, rdf); + } + } + return (RosettaDF)rdf; + } + + // Package on purpose + static class Call { + protected final static String VOID_CONTENT_TYPE="application/Void+json;version=2.0"; + + protected RosettaDF df; + protected AAFClient client; + + public Call(AAFClient ac, RosettaDF df) { + this.client = ac; + this.df = df; + } + } + + + /////////// Calls ///////////////// + /** + * Returns a Get Object... same as "get" + * + * @param cls + * @return + * @throws APIException + */ + public Get read(Class cls) throws APIException { + return new Get(this,getDF(cls)); + } + + /** + * Returns a Get Object... same as "read" + * + * @param cls + * @return + * @throws APIException + */ + public Get get(Class cls) throws APIException { + return new Get(this,getDF(cls)); + } + + /** + * Returns a Post Object... same as "create" + * + * @param cls + * @return + * @throws APIException + */ + public Post post(Class cls) throws APIException { + return new Post(this,getDF(cls)); + } + + /** + * Returns a Post Object... same as "post" + * + * @param cls + * @return + * @throws APIException + */ + public Post create(Class cls) throws APIException { + return new Post(this,getDF(cls)); + } + + /** + * Returns a Put Object... same as "update" + * + * @param cls + * @return + * @throws APIException + */ + public Put put(Class cls) throws APIException { + return new Put(this,getDF(cls)); + } + + /** + * Returns a Put Object... same as "put" + * + * @param cls + * @return + * @throws APIException + */ + public Put update(Class cls) throws APIException { + return new Put(this,getDF(cls)); + } + + /** + * Returns a Delete Object + * + * @param cls + * @return + * @throws APIException + */ + public Delete delete(Class cls) throws APIException { + return new Delete(this,getDF(cls)); + } + + /** + * Returns a Delete Object + * + * @param cls + * @return + * @throws APIException + */ + public Delete delete() throws APIException { + return new Delete(this,null); + } + + public Put put() { + return new Put(this,null); + } + + +} -- cgit 1.2.3-korg