summaryrefslogtreecommitdiffstats
path: root/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicTypes.java
diff options
context:
space:
mode:
Diffstat (limited to 'gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicTypes.java')
-rw-r--r--gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicTypes.java205
1 files changed, 0 insertions, 205 deletions
diff --git a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicTypes.java b/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicTypes.java
deleted file mode 100644
index e606079345..0000000000
--- a/gerrit-extension-api/src/main/java/com/google/gerrit/extensions/registration/PrivateInternals_DynamicTypes.java
+++ /dev/null
@@ -1,205 +0,0 @@
-// Copyright (C) 2012 The Android Open Source Project
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.gerrit.extensions.registration;
-
-import com.google.gerrit.extensions.events.LifecycleListener;
-import com.google.inject.Binding;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-import java.lang.reflect.ParameterizedType;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/** <b>DO NOT USE</b> */
-public class PrivateInternals_DynamicTypes {
- public static Map<TypeLiteral<?>, DynamicItem<?>> dynamicItemsOf(Injector src) {
- Map<TypeLiteral<?>, DynamicItem<?>> m = new HashMap<>();
- for (Map.Entry<Key<?>, Binding<?>> e : src.getBindings().entrySet()) {
- TypeLiteral<?> type = e.getKey().getTypeLiteral();
- if (type.getRawType() == DynamicItem.class) {
- ParameterizedType p = (ParameterizedType) type.getType();
- m.put(
- TypeLiteral.get(p.getActualTypeArguments()[0]),
- (DynamicItem<?>) e.getValue().getProvider().get());
- }
- }
- if (m.isEmpty()) {
- return Collections.emptyMap();
- }
- return Collections.unmodifiableMap(m);
- }
-
- public static Map<TypeLiteral<?>, DynamicSet<?>> dynamicSetsOf(Injector src) {
- Map<TypeLiteral<?>, DynamicSet<?>> m = new HashMap<>();
- for (Map.Entry<Key<?>, Binding<?>> e : src.getBindings().entrySet()) {
- TypeLiteral<?> type = e.getKey().getTypeLiteral();
- if (type.getRawType() == DynamicSet.class) {
- ParameterizedType p = (ParameterizedType) type.getType();
- m.put(
- TypeLiteral.get(p.getActualTypeArguments()[0]),
- (DynamicSet<?>) e.getValue().getProvider().get());
- }
- }
- if (m.isEmpty()) {
- return Collections.emptyMap();
- }
- return Collections.unmodifiableMap(m);
- }
-
- public static Map<TypeLiteral<?>, DynamicMap<?>> dynamicMapsOf(Injector src) {
- Map<TypeLiteral<?>, DynamicMap<?>> m = new HashMap<>();
- for (Map.Entry<Key<?>, Binding<?>> e : src.getBindings().entrySet()) {
- TypeLiteral<?> type = e.getKey().getTypeLiteral();
- if (type.getRawType() == DynamicMap.class) {
- ParameterizedType p = (ParameterizedType) type.getType();
- m.put(
- TypeLiteral.get(p.getActualTypeArguments()[0]),
- (DynamicMap<?>) e.getValue().getProvider().get());
- }
- }
- if (m.isEmpty()) {
- return Collections.emptyMap();
- }
- return Collections.unmodifiableMap(m);
- }
-
- public static List<RegistrationHandle> attachItems(
- Injector src, Map<TypeLiteral<?>, DynamicItem<?>> items, String pluginName) {
- if (src == null || items == null || items.isEmpty()) {
- return Collections.emptyList();
- }
-
- List<RegistrationHandle> handles = new ArrayList<>(4);
- try {
- for (Map.Entry<TypeLiteral<?>, DynamicItem<?>> e : items.entrySet()) {
- @SuppressWarnings("unchecked")
- TypeLiteral<Object> type = (TypeLiteral<Object>) e.getKey();
-
- @SuppressWarnings("unchecked")
- DynamicItem<Object> item = (DynamicItem<Object>) e.getValue();
-
- for (Binding<Object> b : bindings(src, type)) {
- handles.add(item.set(b.getKey(), b.getProvider(), pluginName));
- }
- }
- } catch (RuntimeException | Error e) {
- remove(handles);
- throw e;
- }
- return handles;
- }
-
- public static List<RegistrationHandle> attachSets(
- Injector src, Map<TypeLiteral<?>, DynamicSet<?>> sets) {
- if (src == null || sets == null || sets.isEmpty()) {
- return Collections.emptyList();
- }
-
- List<RegistrationHandle> handles = new ArrayList<>(4);
- try {
- for (Map.Entry<TypeLiteral<?>, DynamicSet<?>> e : sets.entrySet()) {
- @SuppressWarnings("unchecked")
- TypeLiteral<Object> type = (TypeLiteral<Object>) e.getKey();
-
- @SuppressWarnings("unchecked")
- DynamicSet<Object> set = (DynamicSet<Object>) e.getValue();
-
- for (Binding<Object> b : bindings(src, type)) {
- if (b.getKey().getAnnotation() != null) {
- handles.add(set.add(b.getKey(), b.getProvider()));
- }
- }
- }
- } catch (RuntimeException | Error e) {
- remove(handles);
- throw e;
- }
- return handles;
- }
-
- public static List<RegistrationHandle> attachMaps(
- Injector src, String groupName, Map<TypeLiteral<?>, DynamicMap<?>> maps) {
- if (src == null || maps == null || maps.isEmpty()) {
- return Collections.emptyList();
- }
-
- List<RegistrationHandle> handles = new ArrayList<>(4);
- try {
- for (Map.Entry<TypeLiteral<?>, DynamicMap<?>> e : maps.entrySet()) {
- @SuppressWarnings("unchecked")
- TypeLiteral<Object> type = (TypeLiteral<Object>) e.getKey();
-
- @SuppressWarnings("unchecked")
- PrivateInternals_DynamicMapImpl<Object> set =
- (PrivateInternals_DynamicMapImpl<Object>) e.getValue();
-
- for (Binding<Object> b : bindings(src, type)) {
- if (b.getKey().getAnnotation() != null) {
- handles.add(set.put(groupName, b.getKey(), b.getProvider()));
- }
- }
- }
- } catch (RuntimeException | Error e) {
- remove(handles);
- throw e;
- }
- return handles;
- }
-
- public static LifecycleListener registerInParentInjectors() {
- return new LifecycleListener() {
- private List<RegistrationHandle> handles;
-
- @Inject private Injector self;
-
- @Override
- public void start() {
- handles = new ArrayList<>(4);
- Injector parent = self.getParent();
- while (parent != null) {
- handles.addAll(attachSets(self, dynamicSetsOf(parent)));
- handles.addAll(attachMaps(self, "gerrit", dynamicMapsOf(parent)));
- parent = parent.getParent();
- }
- if (handles.isEmpty()) {
- handles = null;
- }
- }
-
- @Override
- public void stop() {
- remove(handles);
- handles = null;
- }
- };
- }
-
- private static void remove(List<RegistrationHandle> handles) {
- if (handles != null) {
- for (RegistrationHandle handle : handles) {
- handle.remove();
- }
- }
- }
-
- private static <T> List<Binding<T>> bindings(Injector src, TypeLiteral<T> type) {
- return src.findBindingsByType(type);
- }
-}