checkstyle: TypeName
[neutron.git] / neutron-spi / src / main / java / org / opendaylight / neutron / spi / NeutronObject.java
1 /*
2  * Copyright (c) 2015 Intel Corporation  All rights reserved.
3  * Copyright (c) 2015 Isaku Yamahata  All rights reserved.
4  *
5  * This program and the accompanying materials are made available under the
6  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7  * and is available at http://www.eclipse.org/legal/epl-v10.html
8  */
9
10 package org.opendaylight.neutron.spi;
11
12 import com.fasterxml.jackson.annotation.JsonIgnore;
13 import java.io.Serializable;
14 import java.util.List;
15 import javax.xml.bind.annotation.XmlAccessType;
16 import javax.xml.bind.annotation.XmlAccessorType;
17 import javax.xml.bind.annotation.XmlElement;
18 import javax.xml.bind.annotation.XmlRootElement;
19 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.Uuid;
20
21 @XmlRootElement
22 @XmlAccessorType(XmlAccessType.NONE)
23 public abstract class NeutronObject<T extends NeutronObject> extends NeutronID
24         implements Serializable, INeutronObject<T> {
25     private static final long serialVersionUID = 1L;
26
27     @XmlElement(name = "tenant_id")
28     String tenantID;
29
30     public NeutronObject() {
31         super();
32     }
33
34     @Override
35     public String getTenantID() {
36         if (tenantID != null && tenantID.isEmpty()) {
37             // Bug 4775 - Treat empty string tenantId as null, so no attempt is made
38             //            to turn it into a uuid.
39             return null;
40         }
41         return tenantID;
42     }
43
44     @Override
45     public void setTenantID(String tenantID) {
46         this.tenantID = tenantID;
47     }
48
49     @Override
50     @JsonIgnore
51     public void setTenantID(Uuid tenantID) {
52         this.tenantID = tenantID.getValue().replace("-", "");
53     }
54
55     @Override
56     public String toString() {
57         return "NeutronObject [id=" + uuid + ", tenantID=" + tenantID + "]";
58     }
59
60     @Override
61     public void initDefaults() {
62     }
63
64     @Override
65     public abstract T extractFields(List<String> fields);
66
67     protected void extractField(String field, T ans) {
68         if (field.equals("id")) {
69             ans.setID(this.getID());
70         }
71         if (field.equals("tenant_id")) {
72             ans.setTenantID(this.getTenantID());
73         }
74     }
75 }