package com.arondor.common.reflection.gwt.server;
import java.util.ArrayList;
import java.util.List;
import com.arondor.common.reflection.gwt.client.service.GWTObjectConfigurationService;
import com.arondor.common.reflection.model.config.ObjectConfigurationMap;
import com.arondor.common.reflection.parser.java.DirectoryAccessibleClassProvider;
import com.arondor.common.reflection.parser.spring.XMLBeanDefinitionParser;
import com.arondor.common.reflection.service.DefaultReflectionService;
import com.arondor.common.reflection.service.ReflectionServiceFactory;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class DefaultGWTObjectConfigurationService extends RemoteServiceServlet implements GWTObjectConfigurationService
{
/**
*
*/
private static final long serialVersionUID = -7953708354980206361L;
protected DefaultReflectionService getReflectionService()
{
return (DefaultReflectionService) ReflectionServiceFactory.getInstance().getReflectionService();
}
public ObjectConfigurationMap getObjectConfigurationMap(String context)
{
XMLBeanDefinitionParser parser = new XMLBeanDefinitionParser(context);
return parser.parse();
}
public void loadLib(String context, List<String> packagePrefixes)
{
DirectoryAccessibleClassProvider provider = new DirectoryAccessibleClassProvider();
List<String> directories = new ArrayList<String>();
directories.add(context);
provider.setDirectories(directories);
provider.setPackagePrefixes(packagePrefixes);
provider.provideClasses(getReflectionService().getAccessibleClassCatalog());
}
}