X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ONAP-XACML%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fxacml%2Fstd%2Fpap%2FStdPDPPIPConfig.java;fp=ONAP-XACML%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fxacml%2Fstd%2Fpap%2FStdPDPPIPConfig.java;h=3b769946759ca25564d550aa0b0fffb008654842;hb=d089848fdb0beef8446bdcf60cdb14e4655a93e5;hp=9a65d50b2896146c07e10f32fd487d9b5168d1b8;hpb=a2ab61f0ad39970ad35c3e47ff8429f59850c469;p=policy%2Fengine.git diff --git a/ONAP-XACML/src/main/java/org/onap/policy/xacml/std/pap/StdPDPPIPConfig.java b/ONAP-XACML/src/main/java/org/onap/policy/xacml/std/pap/StdPDPPIPConfig.java index 9a65d50b2..3b7699467 100644 --- a/ONAP-XACML/src/main/java/org/onap/policy/xacml/std/pap/StdPDPPIPConfig.java +++ b/ONAP-XACML/src/main/java/org/onap/policy/xacml/std/pap/StdPDPPIPConfig.java @@ -2,14 +2,14 @@ * ============LICENSE_START======================================================= * ONAP-XACML * ================================================================================ - * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2019 AT&T Intellectual Property. All rights reserved. * ================================================================================ * 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. @@ -17,202 +17,161 @@ * limitations under the License. * ============LICENSE_END========================================================= */ + package org.onap.policy.xacml.std.pap; +import com.att.research.xacml.api.pap.PDPPIPConfig; +import com.fasterxml.jackson.annotation.JsonIgnore; + import java.io.Serializable; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Properties; +import lombok.EqualsAndHashCode; +import lombok.ToString; -import com.att.research.xacml.api.pap.PDPPIPConfig; -import com.fasterxml.jackson.annotation.JsonIgnore; -import org.onap.policy.common.logging.flexlogger.FlexLogger; -import org.onap.policy.common.logging.flexlogger.Logger; - +@EqualsAndHashCode(callSuper = false) +@ToString public class StdPDPPIPConfig implements PDPPIPConfig, Serializable { - private static final long serialVersionUID = 1L; - private static Logger logger = FlexLogger.getLogger(StdPDPPIPConfig.class); - - private String id; - - private String name; - - private String description; - - private String classname; - - private Map config = new HashMap<>(); - - public StdPDPPIPConfig() { - // - // Default constructor - // - } - - public StdPDPPIPConfig(String id) { - this.id = id; - } - - public StdPDPPIPConfig(String id, String name, String description) { - this(id); - this.name = name; - this.description = description; - } - - public StdPDPPIPConfig(String id, Properties properties) { - this(id); - if ( ! this.initialize(properties) ) { - throw new IllegalArgumentException("PIP Engine '" + id + "' has no classname property in config"); - } - } - - public boolean initialize(Properties properties) { - boolean classnameSeen = false; - for (Object key : properties.keySet()) { - if (key.toString().startsWith(this.id + ".")) { - if (logger.isDebugEnabled()) { - logger.debug("Found: " + key); - } - if (key.toString().equals(this.id + ".name")) { - this.name = properties.getProperty(key.toString()); - } else if (key.toString().equals(this.id + ".description")) { - this.description = properties.getProperty(key.toString()); - } else if (key.toString().equals(this.id + ".classname")) { - this.classname = properties.getProperty(key.toString()); - classnameSeen = true; - } - // all properties, including the special ones located above, are included in the properties list - this.config.put(key.toString(), properties.getProperty(key.toString())); - } - } - return classnameSeen; - } - - @Override - public String getId() { - return this.id; - } - - public void setId(String id) { - this.id = id; - } - - @Override - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - @Override - public String getDescription() { - return this.description; - } - - public void setDescription(String description) { - this.description = description; - } - - @Override - public String getClassname() { - return classname; - } - - public void setClassname(String classname) { - this.classname = classname; - } - - @Override - @JsonIgnore - public Map getConfiguration() { - return Collections.unmodifiableMap(this.config); - } - - public void setValues(Map config) { - this.config = config; - } - - @Override - @JsonIgnore - public boolean isConfigured() { - // - // Also include this in the JSON I/O if it is a data field rather than calculated - // - return true; - } - - @Override - public int hashCode() { - final int prime = 31; - int result = 1; - result = prime * result - + ((classname == null) ? 0 : classname.hashCode()); - result = prime * result + ((config == null) ? 0 : config.hashCode()); - result = prime * result - + ((description == null) ? 0 : description.hashCode()); - result = prime * result + ((id == null) ? 0 : id.hashCode()); - result = prime * result + ((name == null) ? 0 : name.hashCode()); - return result; - } - - @Override - public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; - StdPDPPIPConfig other = (StdPDPPIPConfig) obj; - if (classname == null) { - if (other.classname != null) - return false; - } else if (!classname.equals(other.classname)) - return false; - if (config == null) { - if (other.config != null) - return false; - } else if (!config.equals(other.config)) - return false; - if (description == null) { - if (other.description != null) - return false; - } else if (!description.equals(other.description)) - return false; - if (id == null) { - if (other.id != null) - return false; - } else if (!id.equals(other.id)) - return false; - if (name == null) { - if (other.name != null) - return false; - } else if (!name.equals(other.name)) - return false; - return true; - } - - @Override - public String toString() { - return "StdPDPPIPConfig [id=" + id + ", name=" + name - + ", description=" + description + ", classname=" + classname - + ", config=" + config + "]"; - } - - - - // - // Methods needed for JSON serialization/deserialization - // - - public Map getConfig() { - return config; - } - public void setConfig(Map config) { - this.config = config; - } - + private static final long serialVersionUID = 1L; + + private String id; + + private String name; + + private String description; + + private String classname; + + private Map config = new HashMap<>(); + + public StdPDPPIPConfig() { + // + // Default constructor + // + } + + public StdPDPPIPConfig(String id) { + this.id = id; + } + + /** + * Constructor. + * + * @param id String + * @param name String + * @param description String + */ + public StdPDPPIPConfig(String id, String name, String description) { + this(id); + this.name = name; + this.description = description; + } + + /** + * Constructor. + * + * @param id String + * @param properties Properties + */ + public StdPDPPIPConfig(String id, Properties properties) { + this(id); + if (!this.initialize(properties)) { + throw new IllegalArgumentException("PIP Engine '" + id + "' has no classname property in config"); + } + } + + /** + * initialize. + * + * @param properties Properties + * @return boolean + */ + public boolean initialize(Properties properties) { + boolean classnameSeen = false; + for (Object key : properties.keySet()) { + if (key.toString().startsWith(this.id + ".")) { + if (key.toString().equals(this.id + ".name")) { + this.name = properties.getProperty(key.toString()); + } else if (key.toString().equals(this.id + ".description")) { + this.description = properties.getProperty(key.toString()); + } else if (key.toString().equals(this.id + ".classname")) { + this.classname = properties.getProperty(key.toString()); + classnameSeen = true; + } + // all properties, including the special ones located above, are included in the properties list + this.config.put(key.toString(), properties.getProperty(key.toString())); + } + } + return classnameSeen; + } + + @Override + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + + @Override + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + @Override + public String getDescription() { + return this.description; + } + + public void setDescription(String description) { + this.description = description; + } + + @Override + public String getClassname() { + return classname; + } + + public void setClassname(String classname) { + this.classname = classname; + } + + @Override + @JsonIgnore + public Map getConfiguration() { + return Collections.unmodifiableMap(this.config); + } + + public void setValues(Map config) { + this.config = config; + } + + @Override + @JsonIgnore + public boolean isConfigured() { + // + // Also include this in the JSON I/O if it is a data field rather than calculated + // + return true; + } + + // + // Methods needed for JSON serialization/deserialization + // + + public Map getConfig() { + return config; + } + + public void setConfig(Map config) { + this.config = config; + } + }