2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.protocol.pcep.object;
10 import java.util.List;
12 import org.opendaylight.protocol.pcep.PCEPObject;
13 import org.opendaylight.protocol.pcep.subobject.ExplicitRouteSubobject;
14 import com.google.common.base.Objects.ToStringHelper;
21 * Copyright (c) 2012 by Cisco Systems, Inc. All rights reserved.
24 public class PCEPSecondaryExplicitRouteObject extends PCEPObject {
26 private final List<ExplicitRouteSubobject> subobjects;
29 * Constructs Secondary Explicit Route Object.
32 * List<ExplicitRouteSubobject>. Can't be null or empty.
36 public PCEPSecondaryExplicitRouteObject(List<ExplicitRouteSubobject> subobjects, boolean processed, boolean ignored) {
37 super(processed, ignored);
38 if (subobjects == null || subobjects.isEmpty())
39 throw new IllegalArgumentException("Subobjects can't be null or empty.");
40 this.subobjects = subobjects;
44 * Gets list of {@link ExplicitRouteSubobject}
46 * @return List<ExplicitRouteSubobject>. Can't be null or empty.
48 public List<ExplicitRouteSubobject> getSubobjects() {
49 return this.subobjects;
53 protected ToStringHelper addToStringAttributes(ToStringHelper toStringHelper) {
54 toStringHelper.add("subobjects", this.subobjects);
55 return super.addToStringAttributes(toStringHelper);
59 public int hashCode() {
61 int result = super.hashCode();
62 result = prime * result + ((this.subobjects == null) ? 0 : this.subobjects.hashCode());
67 public boolean equals(Object obj) {
70 if (!super.equals(obj))
72 if (this.getClass() != obj.getClass())
74 final PCEPSecondaryExplicitRouteObject other = (PCEPSecondaryExplicitRouteObject) obj;
75 if (this.subobjects == null) {
76 if (other.subobjects != null)
78 } else if (!this.subobjects.equals(other.subobjects))