1. Adjust the directory hierarchy
[msb/apigateway.git] / msb-core / apiroute / apiroute-service / src / main / java / org / openo / msb / wrapper / consul / cache / ServiceCache.java
1 /**\r
2 * Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)\r
3 *\r
4 * Licensed under the Apache License, Version 2.0 (the "License");\r
5 * you may not use this file except in compliance with the License.\r
6 * You may obtain a copy of the License at\r
7 *\r
8 * http://www.apache.org/licenses/LICENSE-2.0\r
9 *\r
10 * Unless required by applicable law or agreed to in writing, software\r
11 * distributed under the License is distributed on an "AS IS" BASIS,\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13 * See the License for the specific language governing permissions and\r
14 * limitations under the License.\r
15 */\r
16 \r
17 package org.openo.msb.wrapper.consul.cache;\r
18 \r
19 import java.math.BigInteger;\r
20 import java.util.List;\r
21 import java.util.Map;\r
22 \r
23 import org.openo.msb.wrapper.consul.CatalogClient;\r
24 import org.openo.msb.wrapper.consul.async.ConsulResponseCallback;\r
25 \r
26 public class ServiceCache  extends ConsulCache4Map<String, Map<String, List<String>>> {\r
27     private  ServiceCache( ConsulCache4Map.CallbackConsumer<Map<String, List<String>>> callbackConsumer) {\r
28                       super(callbackConsumer);\r
29                       // TODO Auto-generated constructor stub\r
30                   }\r
31                   \r
32                   \r
33                   public static ServiceCache newCache(\r
34                       final CatalogClient catalogClient,\r
35                       final int watchSeconds){\r
36                    \r
37                      \r
38                      final CallbackConsumer<Map<String, List<String>>> callbackConsumer = new CallbackConsumer<Map<String, List<String>>>() {\r
39                          @Override\r
40                          public void consume(BigInteger index, ConsulResponseCallback<Map<String, List<String>>> callback) {\r
41                              catalogClient.getService(watchParams(index, watchSeconds),callback);\r
42                          }\r
43                      };\r
44                      \r
45                       \r
46                      return new ServiceCache(callbackConsumer);\r
47                       \r
48                       \r
49                   }\r
50 }\r