001/* 002 * Copyright 2016 Anyware Services 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016package org.ametys.core.user.directory; 017 018import java.util.Map; 019 020import org.apache.avalon.framework.configuration.Configuration; 021 022import org.ametys.runtime.i18n.I18nizableText; 023import org.ametys.runtime.model.ElementDefinition; 024import org.ametys.runtime.model.checker.ItemCheckerDescriptor; 025 026/** 027 * Default implementation of {@link UserDirectoryModel} 028 */ 029public class DefaultUserDirectoryModel implements UserDirectoryModel 030{ 031 private String _id; 032 private Class<UserDirectory> _udClass; 033 private Configuration _udConfig; 034 private I18nizableText _label; 035 private I18nizableText _description; 036 private Map<String, ? extends ElementDefinition> _parameters; 037 private Map<String, ? extends ItemCheckerDescriptor> _parameterCheckers; 038 private String _pluginName; 039 040 /** 041 * Constructor 042 * @param id The unique identifier of this user directory model 043 * @param udClass The {@link UserDirectory} class 044 * @param udConfig Additional configuration for {@link UserDirectory} class. Can be empty. 045 * @param label The i18n label 046 * @param description The i18n description 047 * @param parameters the parameters 048 * @param parameterCheckers the parameter checkers 049 * @param pluginName the plugin's name of declaration (for debug purpose) 050 */ 051 public DefaultUserDirectoryModel(String id, Class<UserDirectory> udClass, Configuration udConfig, I18nizableText label, I18nizableText description, Map<String, ? extends ElementDefinition> parameters, Map<String, ? extends ItemCheckerDescriptor> parameterCheckers, String pluginName) 052 { 053 _id = id; 054 _udClass = udClass; 055 _udConfig = udConfig; 056 _label = label; 057 _description = description; 058 _parameters = parameters; 059 _parameterCheckers = parameterCheckers; 060 _pluginName = pluginName; 061 } 062 063 @Override 064 public String getId() 065 { 066 return _id; 067 } 068 069 @Override 070 public I18nizableText getLabel() 071 { 072 return _label; 073 } 074 075 @Override 076 public I18nizableText getDescription() 077 { 078 return _description; 079 } 080 081 @Override 082 public Map<String, ? extends ElementDefinition> getParameters() 083 { 084 return _parameters; 085 } 086 087 @Override 088 public Map<String, ? extends ItemCheckerDescriptor> getParameterCheckers() 089 { 090 return _parameterCheckers; 091 } 092 093 @Override 094 public String getPluginName() 095 { 096 return _pluginName; 097 } 098 099 @Override 100 public Class<UserDirectory> getUserDirectoryClass() 101 { 102 return _udClass; 103 } 104 105 @Override 106 public Configuration getUserDirectoryConfiguration() 107 { 108 return _udConfig; 109 } 110}