Bug-2230: Revision of module RSVP
[bgpcep.git] / pcep / spi / src / main / java / org / opendaylight / protocol / pcep / spi / UnknownObject.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
3  *
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
7  */
8 package org.opendaylight.protocol.pcep.spi;
9
10 import com.google.common.base.Preconditions;
11 import java.util.Arrays;
12 import java.util.List;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.Object;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcep.error.object.ErrorObjectBuilder;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.Errors;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.pcerr.message.pcerr.message.ErrorsBuilder;
17 import org.opendaylight.yangtools.yang.binding.DataContainer;
18
19 /**
20  * Placeholder object. This object should be injected by in positions where an object is either completely unknown or
21  * has failed semantic validation.
22  */
23 public final class UnknownObject implements Object {
24     private final Object invalidObject;
25     private final Errors error;
26     private final PCEPErrors e;
27
28     public UnknownObject(final PCEPErrors error) {
29         this(error, null);
30     }
31
32     public UnknownObject(final PCEPErrors error, final Object invalidObject) {
33         this.e = Preconditions.checkNotNull(error);
34
35         this.error = new ErrorsBuilder().setErrorObject(
36                 new ErrorObjectBuilder().setType(error.getErrorType()).setValue(
37                         error.getErrorValue()).build()).build();
38         this.invalidObject = invalidObject;
39     }
40
41     public List<Errors> getErrors() {
42         return Arrays.asList(this.error);
43     }
44
45     public PCEPErrors getError() {
46         return this.e;
47     }
48
49     public Object getInvalidObject() {
50         return this.invalidObject;
51     }
52
53     @Override
54     public Class<? extends DataContainer> getImplementedInterface() {
55         return Object.class;
56     }
57
58     @Override
59     public Boolean isIgnore() {
60         return false;
61     }
62
63     @Override
64     public Boolean isProcessingRule() {
65         return false;
66     }
67 }