/*- * Copyright (C) 2006-2008 Erik Larsson * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.catacombae.storage.ps.legacy; import java.io.PrintStream; import org.catacombae.storage.ps.Partition; /** Generalization of the features that a simple partitioning system should provide. */ public interface PartitionSystem { /** * Performs partition system specific validitity and/or sanity checks to * determine if the partition system is valid and correct. */ public boolean isValid(); /** * Returns the number of partition entries represented in this partition system. * @return the number of partition entries represented in this partition system. */ public int getPartitionCount(); /** * Fetches the partition entry at index <code>index</code>. * <code>index<code> must be larger than or equal to 0 and less than * <code>getPartitionCount()</code>. * @param index the requested index. * @return the requested Partition. */ public Partition getPartitionEntry(int index); /** * Returns all Partition entries represented in this partition system. * @return all Partition entries represented in this partition system. */ public Partition[] getPartitionEntries(); /** * Returns the number of partition entries that contain partition data. * @return the number of partition entries that contain partition data. */ public int getUsedPartitionCount(); /** * Sorts out those partition entries that contain valid partition data and * returns them in an array. * @return an array of valid, usable partition entries. */ public Partition[] getUsedPartitionEntries(); /** * Returns the long name of this partition system, for example "Master Boot * Record". * @return the long name of this partition system. */ public String getLongName(); /** * Returns the short name of this partition system, for example "MBR". * @return the short name of this partition system. */ public String getShortName(); /** * Prints the fields of this structure to the supplied * <code>PrintStream</code>, prepending <code>prefix</code> to each new * line. * @param ps the output <code>PrintStream</code>. * @param prefix the prefix to prepend to each line. */ public void printFields(PrintStream ps, String prefix); /** * Prints the name and fields of this structure to the supplied * <code>PrintStream</code>, prepending <code>prefix</code> to each new * line. * @param ps the output <code>PrintStream</code>. * @param prefix the prefix to prepend to each line. */ public void print(PrintStream ps, String prefix); }