Merge "Add debugging of REST call"
[policy/drools-applications.git] / controlloop / common / policy-yaml / src / main / java / org / onap / policy / controlloop / policy / Policy.java
index fbc9558..b7cb787 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START=======================================================
  * policy-yaml
  * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2017-2018 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.
 
 package org.onap.policy.controlloop.policy;
 
+import java.io.Serializable;
 import java.util.Collections;
 import java.util.Map;
 import java.util.UUID;
 
-public class Policy {
-
-       public String id = UUID.randomUUID().toString();
-       public String name;
-       public String description;
-       public String actor;
-       public String recipe;
-       public Map<String, String> payload;
-       public Target target;
-       public OperationsAccumulateParams operationsAccumulateParams;
-       public Integer retry = 0;
-       public Integer timeout = 300;
-       public String success = FinalResult.FINAL_SUCCESS.toString();
-       public String failure = FinalResult.FINAL_FAILURE.toString();
-       public String failure_retries = FinalResult.FINAL_FAILURE_RETRIES.toString();
-       public String failure_timeout = FinalResult.FINAL_FAILURE_TIMEOUT.toString();
-       public String failure_exception = FinalResult.FINAL_FAILURE_EXCEPTION.toString();
-       public String failure_guard = FinalResult.FINAL_FAILURE_GUARD.toString();
-       
-       
-       public Policy() {
-               
-       }
-       
-       public Policy(String id) {
-               this.id = id;
-       }
-       
-       public Policy(String name, String actor, String recipe, Map<String, String> payload, Target target) {
-               this.name = name;
-               this.actor = actor;
-               this.recipe = recipe;
-               this.target = target;
-               if (payload != null) {
-//                     this.payload = new LinkedList<Map<String, String>>();
-                       this.payload = Collections.unmodifiableMap(payload);
-               }
-       }
-       
-       public Policy(String name, String actor, String recipe, Map<String, String> payload, Target target, Integer retries, Integer timeout) {
-               this(name, actor, recipe, payload, target);
-               this.retry = retries;
-               this.timeout = timeout;
-       }
-       
-       public Policy(String id, String name, String description, String actor, Map<String, String> payload, Target target, String recipe, Integer retries, Integer timeout) {
-               this(name, actor, recipe, payload, target, retries, timeout);
-               this.id = id;
-               this.description = description;
-       }
-       
-       public Policy(Policy policy) {
-               this.id = policy.id;
-               this.name = policy.name;
-               this.description = policy.description;
-               this.actor = policy.actor;
-               this.recipe = policy.recipe;
-               if (policy.payload != null) {
-//                     this.payload = new LinkedList<Map<String, String>>();
-//                     this.payload.addAll(policy.payload);
-                       this.payload = Collections.unmodifiableMap(policy.payload);
-               }
-               this.target = policy.target;
-               this.operationsAccumulateParams = policy.operationsAccumulateParams;
-               this.retry = policy.retry;
-               this.timeout = policy.timeout;
-               this.success = policy.success;
-               this.failure = policy.failure;
-               this.failure_exception = policy.failure_exception;
-               this.failure_guard = policy.failure_guard;
-               this.failure_retries = policy.failure_retries;
-               this.failure_timeout = policy.failure_timeout;
-       }
-
-       public boolean isValid() {
-               try {
-                       if (id == null) {
-                               throw new NullPointerException();
-                       }
-                       if (name == null) {
-                               throw new NullPointerException();
-                       }
-                       if (actor == null) {
-                               throw new NullPointerException();
-                       }
-                       if (recipe == null) {
-                               throw new NullPointerException();
-                       }
-                       if (target == null) {
-                               throw new NullPointerException();
-                       }
-               } catch (Exception e) {
-                       return false;
-               }
-               
-               return true;
-       }
-
-       @Override
-       public String toString() {
-               return "Policy [id=" + id + ", name=" + name + ", description=" + description + ", actor=" + actor + ", recipe="
-                               + recipe + ", payload=" + payload + ", target=" + target + ", operationsAccumulateParams=" + operationsAccumulateParams + ", retry=" + retry + ", timeout=" + timeout
-                               + ", success=" + success + ", failure=" + failure + ", failure_retries=" + failure_retries
-                               + ", failure_timeout=" + failure_timeout + ", failure_exception=" + failure_exception + ", failure_guard=" + failure_guard + "]";
-       }
-
-       @Override
-       public int hashCode() {
-               final int prime = 31;
-               int result = 1;
-               result = prime * result + ((actor == null) ? 0 : actor.hashCode());
-               result = prime * result + ((description == null) ? 0 : description.hashCode());
-               result = prime * result + ((failure == null) ? 0 : failure.hashCode());
-               result = prime * result + ((failure_exception == null) ? 0 : failure_exception.hashCode());
-               result = prime * result + ((failure_guard == null) ? 0 : failure_guard.hashCode());
-               result = prime * result + ((failure_retries == null) ? 0 : failure_retries.hashCode());
-               result = prime * result + ((failure_timeout == null) ? 0 : failure_timeout.hashCode());
-               result = prime * result + ((id == null) ? 0 : id.hashCode());
-               result = prime * result + ((name == null) ? 0 : name.hashCode());
-               result = prime * result + ((payload == null) ? 0 : payload.hashCode());
-               result = prime * result + ((recipe == null) ? 0 : recipe.hashCode());
-               result = prime * result + ((retry == null) ? 0 : retry.hashCode());
-               result = prime * result + ((success == null) ? 0 : success.hashCode());
-               result = prime * result + ((target == null) ? 0 : target.hashCode());
-               result = prime * result + ((operationsAccumulateParams == null) ? 0 : operationsAccumulateParams.hashCode());
-               result = prime * result + ((timeout == null) ? 0 : timeout.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;
-               Policy other = (Policy) obj;
-               if (actor != other.actor)
-                       return false;
-               if (description == null) {
-                       if (other.description != null)
-                               return false;
-               } else if (!description.equals(other.description))
-                       return false;
-               if (failure == null) {
-                       if (other.failure != null)
-                               return false;
-               } else if (!failure.equals(other.failure))
-                       return false;
-               if (failure_exception == null) {
-                       if (other.failure_exception != null)
-                               return false;
-               } else if (!failure_exception.equals(other.failure_exception))
-                       return false;
-               if (failure_guard == null) {
-                       if (other.failure_guard != null)
-                               return false;
-               } else if (!failure_guard.equals(other.failure_guard))
-                       return false;
-               if (failure_retries == null) {
-                       if (other.failure_retries != null)
-                               return false;
-               } else if (!failure_retries.equals(other.failure_retries))
-                       return false;
-               if (failure_timeout == null) {
-                       if (other.failure_timeout != null)
-                               return false;
-               } else if (!failure_timeout.equals(other.failure_timeout))
-                       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;
-               if (payload == null) {
-                       if (other.payload != null)
-                               return false;
-               } else if (!payload.equals(other.payload))
-                       return false;
-               if (recipe == null) {
-                       if (other.recipe != null)
-                               return false;
-               } else if (!recipe.equals(other.recipe))
-                       return false;
-               if (retry == null) {
-                       if (other.retry != null)
-                               return false;
-               } else if (!retry.equals(other.retry))
-                       return false;
-               if (success == null) {
-                       if (other.success != null)
-                               return false;
-               } else if (!success.equals(other.success))
-                       return false;
-               if (operationsAccumulateParams == null) {
-                       if (other.operationsAccumulateParams != null)
-                               return false;
-               } else if (!operationsAccumulateParams.equals(other.operationsAccumulateParams))
-                       return false;
-               if (target == null) {
-                       if (other.target != null)
-                               return false;
-               } else if (!target.equals(other.target))
-                       return false;   
-               if (timeout == null) {
-                       if (other.timeout != null)
-                               return false;
-               } else if (!timeout.equals(other.timeout))
-                       return false;
-               return true;
-       }
-       
+public class Policy implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String id = UUID.randomUUID().toString();
+    private String name;
+    private String description;
+    private String actor;
+    private String recipe;
+    private Map<String, String> payload;
+    private Target target;
+    private OperationsAccumulateParams operationsAccumulateParams;
+    private Integer retry = 0;
+    private Integer timeout = 300;
+    private String success = FinalResult.FINAL_SUCCESS.toString();
+    private String failure = FinalResult.FINAL_FAILURE.toString();
+    private String failureRetries = FinalResult.FINAL_FAILURE_RETRIES.toString();
+    private String failureTimeout = FinalResult.FINAL_FAILURE_TIMEOUT.toString();
+    private String failureException = FinalResult.FINAL_FAILURE_EXCEPTION.toString();
+    private String failureGuard = FinalResult.FINAL_FAILURE_GUARD.toString();
+    
+    
+    public Policy() {
+        //Does Nothing Empty Constructor
+    }
+    
+    public Policy(String id) {
+        this.id = id;
+    }
+    
+    /**
+     * Constructor.
+     * 
+     * @param name name
+     * @param actor actor
+     * @param recipe recipe
+     * @param payload payload
+     * @param target target
+     */
+    public Policy(String name, String actor, String recipe, Map<String, String> payload, Target target) {
+        this.name = name;
+        this.actor = actor;
+        this.recipe = recipe;
+        this.target = target;
+        if (payload != null) {
+            this.payload = Collections.unmodifiableMap(payload);
+        }
+    }
+    
+    /**
+     * Constructor.
+     * 
+     * @param name name
+     * @param actor actor
+     * @param recipe recipe
+     * @param payload payload
+     * @param target target
+     * @param retries retries
+     * @param timeout timeout
+     */
+    public Policy(String name, String actor, String recipe, Map<String, String> payload, Target target,
+                  Integer retries, Integer timeout) {
+        this(name, actor, recipe, payload, target);
+        this.retry = retries;
+        this.timeout = timeout;
+    }
+    
+    /**
+     * Constructor.
+     *
+     * @param policyParam provide parameter object
+     */
+    public Policy(PolicyParam policyParam) {
+        this(policyParam.getName(), policyParam.getActor(), policyParam.getRecipe(), policyParam.getPayload(),
+                policyParam.getTarget(), policyParam.getRetries(), policyParam.getTimeout());
+        this.id = policyParam.getId();
+        this.description = policyParam.getDescription();
+    }
+    
+    /**
+     * Constructor.
+     * 
+     * @param policy copy object
+     */
+    public Policy(Policy policy) {
+        this.id = policy.id;
+        this.name = policy.name;
+        this.description = policy.description;
+        this.actor = policy.actor;
+        this.recipe = policy.recipe;
+        if (policy.payload != null) {
+            this.payload = Collections.unmodifiableMap(policy.payload);
+        }
+        this.target = policy.target;
+        this.operationsAccumulateParams = policy.operationsAccumulateParams;
+        this.retry = policy.retry;
+        this.timeout = policy.timeout;
+        this.success = policy.success;
+        this.failure = policy.failure;
+        this.failureException = policy.failureException;
+        this.failureGuard = policy.failureGuard;
+        this.failureRetries = policy.failureRetries;
+        this.failureTimeout = policy.failureTimeout;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getActor() {
+        return actor;
+    }
+
+    public void setActor(String actor) {
+        this.actor = actor;
+    }
+
+    public String getRecipe() {
+        return recipe;
+    }
+
+    public void setRecipe(String recipe) {
+        this.recipe = recipe;
+    }
+
+    public Map<String, String> getPayload() {
+        return payload;
+    }
+
+    public void setPayload(Map<String, String> payload) {
+        this.payload = payload;
+    }
+
+    public Target getTarget() {
+        return target;
+    }
+
+    public void setTarget(Target target) {
+        this.target = target;
+    }
+
+    public OperationsAccumulateParams getOperationsAccumulateParams() {
+        return operationsAccumulateParams;
+    }
+
+    public void setOperationsAccumulateParams(OperationsAccumulateParams operationsAccumulateParams) {
+        this.operationsAccumulateParams = operationsAccumulateParams;
+    }
+
+    public Integer getRetry() {
+        return retry;
+    }
+
+    public void setRetry(Integer retry) {
+        this.retry = retry;
+    }
+
+    public Integer getTimeout() {
+        return timeout;
+    }
+
+    public void setTimeout(Integer timeout) {
+        this.timeout = timeout;
+    }
+
+    public String getSuccess() {
+        return success;
+    }
+
+    public void setSuccess(String success) {
+        this.success = success;
+    }
+
+    public String getFailure() {
+        return failure;
+    }
+
+    public void setFailure(String failure) {
+        this.failure = failure;
+    }
+
+    public String getFailure_retries() {
+        return failureRetries;
+    }
+
+    public void setFailure_retries(String failureRetries) {
+        this.failureRetries = failureRetries;
+    }
+
+    public String getFailure_timeout() {
+        return failureTimeout;
+    }
+
+    public void setFailure_timeout(String failureTimeout) {
+        this.failureTimeout = failureTimeout;
+    }
+
+    public String getFailure_exception() {
+        return failureException;
+    }
+
+    public void setFailure_exception(String failureException) {
+        this.failureException = failureException;
+    }
+
+    public String getFailure_guard() {
+        return failureGuard;
+    }
+
+    public void setFailure_guard(String failureGuard) {
+        this.failureGuard = failureGuard;
+    }
+
+    public boolean isValid() {
+        return id != null && name != null && actor != null && recipe != null && target != null;
+    }
+
+    @Override
+    public String toString() {
+        return "Policy [id=" + id + ", name=" + name + ", description=" + description + ", actor=" + actor + ", recipe="
+                + recipe + ", payload=" + payload + ", target=" + target + ", operationsAccumulateParams=" 
+                + operationsAccumulateParams + ", retry=" + retry + ", timeout=" + timeout
+                + ", success=" + success + ", failure=" + failure + ", failure_retries=" + failureRetries
+                + ", failure_timeout=" + failureTimeout + ", failure_exception=" + failureException
+                + ", failure_guard=" + failureGuard + "]";
+    }
+
+    @Override
+    public int hashCode() {
+        int result = 1;
+        result = addHashCodeForField(result, actor);
+        result = addHashCodeForField(result, description);
+        result = addHashCodeForField(result, failure);
+        result = addHashCodeForField(result, failureException);
+        result = addHashCodeForField(result, failureGuard);
+        result = addHashCodeForField(result, failureRetries);
+        result = addHashCodeForField(result, failureTimeout);
+        result = addHashCodeForField(result, id);
+        result = addHashCodeForField(result, name);
+        result = addHashCodeForField(result, payload);
+        result = addHashCodeForField(result, recipe);
+        result = addHashCodeForField(result, retry);
+        result = addHashCodeForField(result, success);
+        result = addHashCodeForField(result, target);
+        result = addHashCodeForField(result, operationsAccumulateParams);
+        result = addHashCodeForField(result, timeout);
+        return result;
+    }
+    
+    private int addHashCodeForField(int hashCode, Object field) {
+        final int prime = 31;
+        return prime * hashCode + ((field == null) ? 0 : field.hashCode());
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        Policy other = (Policy) obj;
+        return equalsMayBeNull(actor, other.actor)
+                && equalsMayBeNull(description, other.description)
+                && equalsMayBeNull(failure, other.failure)
+                && equalsMayBeNull(failureException, other.failureException)
+                && equalsMayBeNull(failureGuard, other.failureGuard)
+                && equalsMayBeNull(failureRetries, other.failureRetries)
+                && equalsMayBeNull(id, other.id)
+                && equalsMayBeNull(name, other.name)
+                && equalsMayBeNull(payload, other.payload)
+                && equalsMayBeNull(recipe, other.recipe)
+                && equalsMayBeNull(retry, other.retry)
+                && equalsMayBeNull(success, other.success)
+                && equalsMayBeNull(operationsAccumulateParams, other.operationsAccumulateParams)
+                && equalsMayBeNull(target, other.target)
+                && equalsMayBeNull(timeout, other.timeout);
+    }
+    
+    private boolean equalsMayBeNull(final Object obj1, final Object obj2) {
+        if ( obj1 == null ) {
+            return obj2 == null;
+        }
+        return obj1.equals(obj2);
+    }
 }