package farom.iparcos.catalog; import android.content.Context; import android.text.Spannable; import java.util.ArrayList; import java.util.Collections; /** * A catalog of astronomical objects */ public class Catalog { /** * Application context to access the resources */ protected Context context; /** * Catalog objects */ protected ArrayList<CatalogEntry> entries; private boolean ready = false; /** * Constructor * * @param context Application context to access the resources */ public Catalog(Context context) { this.context=context; init(); } private void init() { entries = new ArrayList<CatalogEntry>(DSOEntry.createList(context)); entries.addAll(StarEntry.createList(context)); Collections.sort(entries); ready = true; } /** * @return true if the catalog is fully initialized */ public boolean isReady(){ return ready; } public ArrayList<CatalogEntry> getEntries(){ if(isReady()){ return entries; }else{ return null; } } public int searchIndex(final String query){ CatalogEntry fakeEntry = new CatalogEntry() { @Override public Coordinates getCoordinates() { return null; } @Override public String getName() { return query; } @Override public Spannable createDescription(Context ctx) { return null; } @Override public Spannable createSummary(Context ctx) { return null; } }; int index = Collections.binarySearch(entries,fakeEntry); if(index<0){ index = -index - 1; } return index; } }