Increased unit test coverage for some deserialization factories
[openflowjava.git] / openflow-protocol-impl / src / main / java / org / opendaylight / openflowjava / protocol / impl / util / OpenflowUtils.java
1 /*\r
2  * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 \r
9 package org.opendaylight.openflowjava.protocol.impl.util;\r
10 \r
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortConfigV10;\r
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortFeaturesV10;\r
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortStateV10;\r
14 \r
15 /**\r
16  * Used for common structures translation / conversion\r
17  * \r
18  * @author michal.polkorab\r
19  */\r
20 public abstract class OpenflowUtils {\r
21 \r
22     /**\r
23      * Creates PortState (OF v1.0) from input\r
24      * @param input value read from buffer\r
25      * @return port state\r
26      */\r
27     public static PortStateV10 createPortState(long input){\r
28         final Boolean _linkDown = ((input) & (1<<0)) != 0;\r
29         final Boolean _blocked = ((input) & (1<<1)) != 0;\r
30         final Boolean _live = ((input) & (1<<2)) != 0;\r
31         final Boolean _stpListen = ((input) & (1<<8)) == 0;\r
32         final Boolean _stpLearn = ((input) & (1<<8)) != 0;\r
33         final Boolean _stpForward = ((input) & (1<<9)) != 0; // equals 2 << 8\r
34         final Boolean _stpBlock = (((input) & (1<<9)) != 0) && (((input) & (1<<8)) != 0); // equals 3 << 8\r
35         final Boolean _stpMask = ((input) & (1<<10)) != 0; // equals 4 << 8\r
36         return new PortStateV10(_blocked, _linkDown, _live, _stpBlock, _stpForward, _stpLearn, _stpListen, _stpMask);\r
37     }\r
38 \r
39     /**\r
40      * Creates PortConfig (OF v1.0) from input\r
41      * @param input value read from buffer\r
42      * @return port state\r
43      */\r
44     public static PortConfigV10 createPortConfig(long input){\r
45         final Boolean _portDown = ((input) & (1<<0)) != 0;\r
46         final Boolean _noStp = ((input) & (1<<1)) != 0;\r
47         final Boolean _noRecv = ((input) & (1<<2)) != 0;\r
48         final Boolean _noRecvStp = ((input) & (1<<3)) != 0;\r
49         final Boolean _noFlood = ((input) & (1<<4)) != 0;\r
50         final Boolean _noFwd  = ((input) & (1<<5)) != 0;\r
51         final Boolean _noPacketIn = ((input) & (1<<6)) != 0;\r
52         return new PortConfigV10(_noFlood, _noFwd, _noPacketIn, _noRecv, _noRecvStp, _noStp, _portDown);\r
53     }\r
54 \r
55     /**\r
56      * Creates PortFeatures (OF v1.0) from input\r
57      * @param input value read from buffer\r
58      * @return port state\r
59      */\r
60     public static PortFeaturesV10 createPortFeatures(long input){\r
61         final Boolean _10mbHd = ((input) & (1<<0)) != 0;\r
62         final Boolean _10mbFd = ((input) & (1<<1)) != 0;\r
63         final Boolean _100mbHd = ((input) & (1<<2)) != 0;\r
64         final Boolean _100mbFd = ((input) & (1<<3)) != 0;\r
65         final Boolean _1gbHd = ((input) & (1<<4)) != 0;\r
66         final Boolean _1gbFd = ((input) & (1<<5)) != 0;\r
67         final Boolean _10gbFd = ((input) & (1<<6)) != 0;\r
68         final Boolean _copper = ((input) & (1<<7)) != 0;\r
69         final Boolean _fiber = ((input) & (1<<8)) != 0;\r
70         final Boolean _autoneg = ((input) & (1<<9)) != 0;\r
71         final Boolean _pause = ((input) & (1<<10)) != 0;\r
72         final Boolean _pauseAsym = ((input) & (1<<11)) != 0;\r
73         return new PortFeaturesV10(_100mbFd, _100mbHd, _10gbFd, _10mbFd, _10mbHd,\r
74                 _1gbFd, _1gbHd, _autoneg, _copper, _fiber, _pause, _pauseAsym);\r
75     }\r
76 }