/*******************************************************************************
* Copyright (c) 2006-2010 eBay Inc. All Rights Reserved.
* 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
*******************************************************************************/
/**
*
*/
package org.ebayopensource.turmeric.eclipse.maven.core.repositorysystem;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import org.ebayopensource.turmeric.eclipse.core.resources.constants.SOAProjectConstants;
import org.ebayopensource.turmeric.eclipse.maven.core.utils.MavenCoreUtils;
import org.ebayopensource.turmeric.eclipse.repositorysystem.core.GlobalRepositorySystem;
import org.ebayopensource.turmeric.eclipse.repositorysystem.core.ITypeRegistryBridge;
import org.ebayopensource.turmeric.eclipse.resources.model.AssetInfo;
import org.ebayopensource.turmeric.eclipse.resources.model.SOABaseProject;
import org.ebayopensource.turmeric.eclipse.utils.collections.ListUtil;
import org.ebayopensource.turmeric.eclipse.utils.core.VersionUtil;
/**
* The Class AbstractMavenTypeRegistryBridge.
*
* @author yayu
*/
public abstract class AbstractMavenTypeRegistryBridge implements ITypeRegistryBridge {
/**
* Instantiates a new abstract maven type registry bridge.
*/
public AbstractMavenTypeRegistryBridge() {
super();
}
/**
* {@inheritDoc}
*/
@Override
public Set<AssetInfo> getAllTypeLibraries() throws Exception {
return MavenCoreUtils.getAllTypeLibraries();
}
/**
* {@inheritDoc}
*/
@Override
public List<AssetInfo> getAllLatestTypeLibraries() throws Exception {
Map<String, AssetInfo> data = new ConcurrentHashMap<String, AssetInfo>();
for (AssetInfo asset : MavenCoreUtils.getAllTypeLibraries()) {
AssetInfo latestAsset = data.get(asset.getName());
if (latestAsset == null) {
data.put(asset.getName(), asset);
} else if(VersionUtil.compare(
asset.getVersion(), latestAsset.getVersion()) > 0) {
//found a newer version
data.put(asset.getName(), asset);
}
}
return ListUtil.arrayList(data.values());
}
/**
* {@inheritDoc}
*/
@Override
public boolean createTypeLibrary(SOABaseProject soaBaseProject)
throws Exception {
return false;
}
/**
* {@inheritDoc}
*/
@Override
public boolean deleteTypeLibrary(String typeLibName) throws Exception {
return false;
}
/**
* {@inheritDoc}
*/
@Override
public boolean typeLibraryExists(String typeLibName) throws Exception {
return MavenCoreUtils.isTypeLibraryExist(typeLibName);
}
/**
* {@inheritDoc}
*/
@Override
public Collection<String> getRequiredLibrariesForTypeLibraryProject() {
return GlobalRepositorySystem.instanceOf().getActiveRepositorySystem().getActiveOrganizationProvider()
.getDefaultDependencies(SOAProjectConstants.SupportedProjectType.TYPE_LIBRARY);
}
}