Add new revision for pcep types model
[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 static java.util.Objects.requireNonNull;
11
12 import java.util.Collections;
13 import java.util.List;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.Object;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcep.error.object.ErrorObjectBuilder;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.pcerr.message.Errors;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev181109.pcerr.message.pcerr.message.ErrorsBuilder;
18 import org.opendaylight.yangtools.yang.binding.DataContainer;
19
20 /**
21  * Placeholder object. This object should be injected by in positions where an object is either completely unknown or
22  * has failed semantic validation.
23  */
24 public final class UnknownObject implements Object {
25     private final Object invalidObject;
26     private final Errors error;
27     private final PCEPErrors e;
28
29     public UnknownObject(final PCEPErrors error) {
30         this(error, null);
31     }
32
33     public UnknownObject(final PCEPErrors error, final Object invalidObject) {
34         this.e = requireNonNull(error);
35
36         this.error = new ErrorsBuilder().setErrorObject(
37                 new ErrorObjectBuilder().setType(error.getErrorType()).setValue(
38                         error.getErrorValue()).build()).build();
39         this.invalidObject = invalidObject;
40     }
41
42     public List<Errors> getErrors() {
43         return Collections.singletonList(this.error);
44     }
45
46     public PCEPErrors getError() {
47         return this.e;
48     }
49
50     public Object getInvalidObject() {
51         return this.invalidObject;
52     }
53
54     @Override
55     public Class<? extends DataContainer> getImplementedInterface() {
56         return Object.class;
57     }
58
59     @Override
60     public Boolean isIgnore() {
61         return false;
62     }
63
64     @Override
65     public Boolean isProcessingRule() {
66         return false;
67     }
68 }