00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 package com.realtime.crossfire.jxclient.faces;
00023
00024 import java.util.HashMap;
00025 import java.util.Map;
00026 import org.jetbrains.annotations.NotNull;
00027 import org.jetbrains.annotations.Nullable;
00028
00033 public class FacesProviderFactory {
00034
00039 @NotNull
00040 private final Map<Integer, FacesProvider> facesProviders = new HashMap<Integer, FacesProvider>();
00041
00046 public FacesProviderFactory(@NotNull final FacesManager facesManager) {
00047 add(new MagicMapFacesProvider(facesManager));
00048 add(new OriginalFacesProvider(facesManager));
00049 add(new ScaledFacesProvider(facesManager));
00050 }
00051
00056 private void add(@NotNull final FacesProvider facesProvider) {
00057 final int size = facesProvider.getSize();
00058 if (facesProviders.containsKey(size)) {
00059 throw new IllegalArgumentException();
00060 }
00061 facesProviders.put(size, facesProvider);
00062 }
00063
00069 @Nullable
00070 public FacesProvider getFacesProvider(final int size) {
00071 return facesProviders.get(size);
00072 }
00073
00074 }