package com.dubture.getcomposer.core.collection;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import com.dubture.getcomposer.core.entities.AbstractJsonArray;
import com.dubture.getcomposer.core.repositories.Repository;
import com.dubture.getcomposer.core.repositories.RepositoryFactory;
/**
* Represents a repositories collection of a composer package
*
* @see http://getcomposer.org/doc/04-schema.md#repositories
* @author Thomas Gossmann <gos.si>
*/
public class Repositories extends AbstractJsonArray<Repository> {
public Repositories() {
}
@SuppressWarnings("rawtypes")
protected void doParse(Object obj) {
clear();
if (obj instanceof LinkedList) {
for (Object repo : (LinkedList) obj) {
if (repo instanceof LinkedHashMap && ((LinkedHashMap)repo).containsKey("type")) {
String type = (String)((LinkedHashMap)repo).get("type");
Repository r = RepositoryFactory.create(type);
r.fromJson(repo);
add(r);
}
}
}
}
}