ruper2/src/java/core/org/krysalis/ruper/repository RepositoryAttribute.java,1.1,1.2 RepositoryAttributeMap.java,1.1,1.2 RepositorySet.java,1.4,1.5 RepositoryManager.java,1.5,1.6 AbstractRepository.java,1.7,1.8 DefaultDownloadRepositorySortHandler.java,1.1,NONE RepositorySortHandler.java,1.1,NONE DefaultUpdateRepositorySortHandler.java,1.1,NONE

[email protected]
Newsgroups gmane.comp.krysalis.metamorphosis.cvs
Message-ID <[email protected]>
Update of /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository
In directory sc8-pr-cvs1:/tmp/cvs-serv1200/src/java/core/org/krysalis/ruper/repository

Modified Files:
	RepositoryAttribute.java RepositoryAttributeMap.java 
	RepositorySet.java RepositoryManager.java 
	AbstractRepository.java 
Removed Files:
	DefaultDownloadRepositorySortHandler.java 
	RepositorySortHandler.java 
	DefaultUpdateRepositorySortHandler.java 
Log Message:
RepositoryManager handles the repository selectors and comparators

Index: RepositoryAttribute.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/RepositoryAttribute.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RepositoryAttribute.java	29 Aug 2003 14:16:33 -0000	1.1
--- RepositoryAttribute.java	10 Sep 2003 21:05:02 -0000	1.2
***************
*** 23,27 ****
  	public static final RepositoryAttribute HIERARCHICAL = new RepositoryAttribute("HIERARCHICAL");
  
! 	private RepositoryAttribute(final String name) {
  		super(name);
  	}
--- 23,27 ----
  	public static final RepositoryAttribute HIERARCHICAL = new RepositoryAttribute("HIERARCHICAL");
  
! 	public RepositoryAttribute(final String name) {
  		super(name);
  	}

Index: RepositoryAttributeMap.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/RepositoryAttributeMap.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** RepositoryAttributeMap.java	29 Aug 2003 14:16:33 -0000	1.1
--- RepositoryAttributeMap.java	10 Sep 2003 21:05:02 -0000	1.2
***************
*** 7,10 ****
--- 7,12 ----
  package org.krysalis.ruper.repository;
  
+ import java.util.List;
+ 
  import org.krysalis.ruper.util.FlagMap;
  
***************
*** 26,29 ****
--- 28,45 ----
  	public RepositoryAttributeMap(int initialSize) {
  		super(initialSize);
+ 	}
+ 	
+ 	/**
+ 	* Determines if this set has a particular attribute.
+ 	*/
+ 	public boolean hasAttribute(RepositoryAttribute attribute) {
+ 		return hasFlag(attribute);
+ 	}
+ 
+ 	/**
+ 	* Determines if this set has a particular set of attributes.
+ 	*/
+ 	public boolean hasAttributes(List attributes) {
+ 		return hasFlags(attributes);
  	}
  }

Index: RepositorySet.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/RepositorySet.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** RepositorySet.java	9 Sep 2003 18:37:04 -0000	1.4
--- RepositorySet.java	10 Sep 2003 21:05:02 -0000	1.5
***************
*** 26,29 ****
--- 26,34 ----
  	}
  
+ 	public RepositorySet(RepositorySet repositorySet) {
+ 		super(repositorySet);
+ 		m_identifier = new RepositorySetIdentifier(RuperConstants.DEFAULT);
+ 	}
+ 
  	/**
  	 * 

Index: RepositoryManager.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/RepositoryManager.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** RepositoryManager.java	5 Sep 2003 05:51:46 -0000	1.5
--- RepositoryManager.java	10 Sep 2003 21:05:02 -0000	1.6
***************
*** 5,12 ****
--- 5,18 ----
  package org.krysalis.ruper.repository;
  
+ import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.Comparator;
  import java.util.HashMap;
+ import java.util.Iterator;
+ import java.util.List;
  import java.util.Map;
  
  import org.krysalis.ruper.log.Logger;
+ import org.krysalis.ruper.util.select.Selector;
  
  /**
***************
*** 14,21 ****
   */
  public class RepositoryManager {
- 	public static final String DEFAULT = "Default";
- 	public static final String UPDATE = "Update";
- 	public static final String DOWNLOAD = "Download";
  
  	private RepositorySet m_defaultRepositorySet;
  
--- 20,27 ----
   */
  public class RepositoryManager {
  
+ 	public static final String DEFAULT_REPOSITORY_SET = "DEFAULT_REPOSITORY_SET";
+ 	public static final String SORTED_REPOSITORY_SET = "SORTED_REPOSITORY_SET";
+ 	
  	private RepositorySet m_defaultRepositorySet;
  
***************
*** 24,28 ****
  
  	//handlers who can sort the repository list
! 	private Map m_repositorySortHandlers;
  	/*
  	 * Holds the information like Search RemoteRepoFirst, FindAndStop
--- 30,36 ----
  
  	//handlers who can sort the repository list
! 	private List m_repositoryComparators;
! 	private List m_repositorySelectors;
! 	
  	/*
  	 * Holds the information like Search RemoteRepoFirst, FindAndStop
***************
*** 43,56 ****
  		// and instantiate the selectorConfig
  		// m_selectorConfig = new RepositorySelectorConfig()
! 
  		// create a default repository set m_defaultRepositorySet
  		// add the update and download repository sort handlers
! 		this.m_repositorySortHandlers = new HashMap();
! 		this.m_repositorySortHandlers.put(
! 			UPDATE,
! 			new DefaultUpdateRepositorySortHandler());
! 		this.m_repositorySortHandlers.put(
! 			DOWNLOAD,
! 			new DefaultDownloadRepositorySortHandler());
  	}
  
--- 51,59 ----
  		// and instantiate the selectorConfig
  		// m_selectorConfig = new RepositorySelectorConfig()
! 		this.m_repositorySets = new HashMap();
  		// create a default repository set m_defaultRepositorySet
  		// add the update and download repository sort handlers
! 		this.m_repositoryComparators = new ArrayList();
! 		this.m_repositorySelectors = new ArrayList();
  	}
  
***************
*** 59,93 ****
  	}
  
  	public RepositorySet getRepositorySet(String keyword) {
  		RepositorySet repositorySet = null;
  		try {
! 			if (m_sorted) // already sorted check the map first
! 				{
! 				repositorySet =
! 					(RepositorySet) this.m_repositorySets.get(keyword);
! 				if (repositorySet != null) {
  					return repositorySet;
- 				}
- 			}
- 
- 			RepositorySortHandler handler =
- 				(RepositorySortHandler) this.m_repositorySortHandlers.get(
- 					keyword);
- 			if (handler != null) {
- 				repositorySet = handler.sort(m_defaultRepositorySet);
- 			}
- 			if (repositorySet != null) {
- 				m_repositorySets.put(keyword, repositorySet);
- 			}
- 			else {
- 				repositorySet = m_defaultRepositorySet;
  			}
  		}
  		catch (Exception exp) {
! 			Logger.getLog().error("Error in RepositorySortHandler sort", exp);
  		}
  
  		return repositorySet;
  	}
  
  	public RepositorySorterConfig getSorterConfig() {
--- 62,126 ----
  	}
  
+ 	public RepositorySet getRepositorySet() {
+ 		return getRepositorySet(RepositoryManager.SORTED_REPOSITORY_SET);
+ 	}
  	public RepositorySet getRepositorySet(String keyword) {
  		RepositorySet repositorySet = null;
  		try {
! 			if (m_sorted) // already sorted 
! 			{
! 				repositorySet = (RepositorySet)this.m_repositorySets.get(keyword);
! 				if (repositorySet != null)
  					return repositorySet;
  			}
+ 			
+ 			// select the repositories
+ 			repositorySet = selectRepositorySet(this.m_defaultRepositorySet);
+ 			// sort the repository set
+ 			repositorySet = sortRepositorySet(repositorySet);
+ 			
+ 			this.m_repositorySets.put(keyword, repositorySet);
  		}
  		catch (Exception exp) {
! 			Logger.getLog().error("Error in Repository sort", exp);
  		}
  
  		return repositorySet;
  	}
+ 	
+ 	private RepositorySet selectRepositorySet(RepositorySet defRepositorySet) throws Exception
+ 	{
+ 		RepositorySet repositorySet = new RepositorySet();
+ 		RepositorySet currentRepositorySet = new RepositorySet(defRepositorySet);
+ 			
+ 		for (Iterator selectorIter = this.m_repositorySelectors.iterator(); selectorIter.hasNext();) {
+ 			Selector currentSelector = (Selector) selectorIter.next();
+ 				
+ 			for(Iterator repositoryIter = currentRepositorySet.iterator(); repositoryIter.hasNext();)
+ 			{
+ 				Repository repository = (Repository)repositoryIter.next();
+ 				if( currentSelector.select(repository) )
+ 					repositorySet.add(repository);
+ 			}
+ 			currentRepositorySet = new RepositorySet(repositorySet);
+ 			repositorySet = new RepositorySet();
+ 		}
+ 		
+ 		return currentRepositorySet;
+ 	}
+ 
+ 	private RepositorySet sortRepositorySet(RepositorySet defRepositorySet) throws Exception
+ 	{
+ 		RepositorySet currentRepositorySet = new RepositorySet(defRepositorySet);
+ 			
+ 		for (Iterator comparatorIter = this.m_repositoryComparators.iterator(); comparatorIter.hasNext();) {
+ 			Comparator currentComparator = (Comparator) comparatorIter.next();
+ 				
+ 			Collections.sort(currentRepositorySet, currentComparator);				
+ 		}
+ 		
+ 		return currentRepositorySet;
+ 	}
+ 
  
  	public RepositorySorterConfig getSorterConfig() {
***************
*** 96,111 ****
  
  	/*
! 	 * Add and remove the sort handlers
  	 */
! 	public void addRepositorySortHandler(
! 		String keyword,
! 		RepositorySortHandler handler) {
! 		this.m_repositorySortHandlers.put(keyword, handler);
  	}
  
! 	public void removeRepositorySortHandler(
! 		String keyword,
! 		RepositorySortHandler handler) {
! 		this.m_repositorySortHandlers.remove(keyword);
  	}
  
--- 129,151 ----
  
  	/*
! 	 * Add and remove the selectors
  	 */
! 	public void addRepositorySelector(Selector selector) {
! 		this.m_repositorySelectors.add(selector);
  	}
  
! 	public void removeRepositorySelector(Selector selector) {
! 		this.m_repositorySelectors.remove(selector);
! 	}
! 
! 	/*
! 	 * Add and remove the comparators
! 	 */
! 	public void addRepositoryComparator(Comparator comparator) {
! 		this.m_repositoryComparators.add(comparator);
! 	}
! 
! 	public void removeRepositoryComparator(Comparator comparator) {
! 		this.m_repositoryComparators.remove(comparator);
  	}
  

Index: AbstractRepository.java
===================================================================
RCS file: /cvsroot/metamorphosis/ruper2/src/java/core/org/krysalis/ruper/repository/AbstractRepository.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** AbstractRepository.java	10 Sep 2003 16:09:39 -0000	1.7
--- AbstractRepository.java	10 Sep 2003 21:05:02 -0000	1.8
***************
*** 150,154 ****
  	public Object createChild(Class clazz, String tagId, String refId)
  	{
! 		return ReferenceManager.createReference(clazz, tagId, refId);
  	}
  	
--- 150,154 ----
  	public Object createChild(Class clazz, String tagId, String refId)
  	{
! 		return ReferenceManager.createReferenceObject(clazz, tagId, refId);
  	}
  	

--- DefaultDownloadRepositorySortHandler.java DELETED ---

--- RepositorySortHandler.java DELETED ---

--- DefaultUpdateRepositorySortHandler.java DELETED ---




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.