EMMA Coverage Report (generated Tue Oct 27 11:32:50 PDT 2009)
[all classes][net.spy.memcached.protocol.binary]

COVERAGE SUMMARY FOR SOURCE FILE [StoreOperationImpl.java]

nameclass, %method, %block, %line, %
StoreOperationImpl.java100% (2/2)92%  (12/13)87%  (129/149)93%  (28.9/31)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class StoreOperationImpl100% (1/1)92%  (11/12)86%  (106/123)94%  (29/31)
getData (): byte [] 0%   (0/1)0%   (0/3)0%   (0/1)
cmdMap (StoreType): int 100% (1/1)65%  (22/34)90%  (6.3/7)
<static initializer> 100% (1/1)75%  (6/8)75%  (0.8/1)
StoreOperationImpl (StoreType, String, int, int, byte [], long, OperationCall... 100% (1/1)100% (25/25)100% (8/8)
getBytes (): byte [] 100% (1/1)100% (3/3)100% (1/1)
getCasValue (): long 100% (1/1)100% (3/3)100% (1/1)
getExpiration (): int 100% (1/1)100% (3/3)100% (1/1)
getFlags (): int 100% (1/1)100% (3/3)100% (1/1)
getKeys (): Collection 100% (1/1)100% (4/4)100% (1/1)
getStatusForErrorCode (int, byte []): OperationStatus 100% (1/1)100% (11/11)100% (6/6)
getStoreType (): StoreType 100% (1/1)100% (3/3)100% (1/1)
initialize (): void 100% (1/1)100% (23/23)100% (2/2)
     
class StoreOperationImpl$1100% (1/1)100% (1/1)88%  (23/26)88%  (0.9/1)
<static initializer> 100% (1/1)88%  (23/26)88%  (0.9/1)

1package net.spy.memcached.protocol.binary;
2 
3import java.util.Collection;
4import java.util.Collections;
5 
6import net.spy.memcached.ops.CASOperation;
7import net.spy.memcached.ops.OperationCallback;
8import net.spy.memcached.ops.OperationStatus;
9import net.spy.memcached.ops.StoreOperation;
10import net.spy.memcached.ops.StoreType;
11 
12class StoreOperationImpl extends OperationImpl
13        implements StoreOperation, CASOperation {
14 
15        private static final int SET=1;
16        private static final int ADD=2;
17        private static final int REPLACE=3;
18 
19        static final int SETQ=0x11;
20        static final int ADDQ=0x12;
21        static final int REPLACEQ=0x13;
22 
23        // 4-byte flags, 4-byte expiration
24        static final int EXTRA_LEN = 8;
25 
26        private final String key;
27        private final StoreType storeType;
28        private final int flags;
29        private final int exp;
30        private final long cas;
31        private final byte[] data;
32 
33        private static int cmdMap(StoreType t) {
34                int rv=-1;
35                switch(t) {
36                        case set: rv=SET; break;
37                        case add: rv=ADD; break;
38                        case replace: rv=REPLACE; break;
39                }
40                // Check fall-through.
41                assert rv != -1 : "Unhandled store type:  " + t;
42                return rv;
43        }
44 
45        public StoreOperationImpl(StoreType t, String k, int f, int e,
46                        byte[] d, long c, OperationCallback cb) {
47                super(cmdMap(t), generateOpaque(), cb);
48                key=k;
49                flags=f;
50                exp=e;
51                data=d;
52                cas=c;
53                storeType=t;
54        }
55 
56        @Override
57        public void initialize() {
58                prepareBuffer(key, cas, data, flags, exp);
59        }
60 
61        @Override
62        protected OperationStatus getStatusForErrorCode(int errCode, byte[] errPl) {
63                OperationStatus rv=null;
64                switch(errCode) {
65                        case ERR_EXISTS:
66                                rv=EXISTS_STATUS;
67                                break;
68                        case ERR_NOT_FOUND:
69                                rv=NOT_FOUND_STATUS;
70                                break;
71                }
72                return rv;
73        }
74 
75        public Collection<String> getKeys() {
76                return Collections.singleton(key);
77        }
78 
79        public byte[] getBytes() {
80                return data;
81        }
82 
83        public long getCasValue() {
84                return cas;
85        }
86 
87        public int getExpiration() {
88                return exp;
89        }
90 
91        public int getFlags() {
92                return flags;
93        }
94 
95        public byte[] getData() {
96                return data;
97        }
98 
99        public StoreType getStoreType() {
100                return storeType;
101        }
102 
103}

[all classes][net.spy.memcached.protocol.binary]
EMMA 2.0.5312 (C) Vladimir Roubtsov