From 82821f8a31e5f98c27dced51f1bba0fc6637d598 Mon Sep 17 00:00:00 2001 From: Constantin Date: Mon, 14 Jun 2010 11:27:05 +0200 Subject: changed build system of java/ folder from makefile to ant (big compilation time improvement) --- java/src/rasj/RasStorageLayout.java | 154 ++++++++++++++++++++++++++++++++++++ 1 file changed, 154 insertions(+) create mode 100644 java/src/rasj/RasStorageLayout.java (limited to 'java/src/rasj/RasStorageLayout.java') diff --git a/java/src/rasj/RasStorageLayout.java b/java/src/rasj/RasStorageLayout.java new file mode 100644 index 0000000..ab1feae --- /dev/null +++ b/java/src/rasj/RasStorageLayout.java @@ -0,0 +1,154 @@ +package rasj; + +/* +* This file is part of rasdaman community. +* +* Rasdaman community 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. +* +* Rasdaman community 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 rasdaman community. If not, see . +* +* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann / +rasdaman GmbH. +* +* For more information please see +* or contact Peter Baumann via . +*/ +/** *********************************************************** + *
+ *
+ * PURPOSE: 
+ * This class is used to express the storage options for MDD objects.
+ * In the current version, either the tile-size (for example 256000 bytes) or the 
+ * tiling-domain (for example "[0:127,0:511]") can be specified. If 
+ * neither is done, the default tile-size will be 128 kBytes.
+ *
+ * @version $Revision: 1.10 $
+ *
+ *
+ *
+ * COMMENTS:
+ *
+ * 
+ *********************************************************** */ + + +public class RasStorageLayout + +{ + static final String rcsid = "@(#)Package rasj.odmg, class RasStorageLayout: $Header: /home/rasdev/CVS-repository/rasdaman/java/rasj/RasStorageLayout.java,v 1.10 2003/12/10 21:04:23 rasdev Exp $"; + + /** + * Default tile size in kBytes. This value is currently set + * to 128000 and is used if the user has not specified + * a tile size explicitly. + **/ + static final int DEFAULT_TILE_SIZE = 128000; + + /** + * the spatial domain of the current storageLayout + **/ + private RasMInterval spatialDomain; + + /** + * the current tile size in bytes + **/ + private int tileSize; + + /** + * Default constructor. + **/ + public RasStorageLayout() + { + spatialDomain = null; + tileSize = DEFAULT_TILE_SIZE; + } + + /** + * Copy constructor taking another storage layout object as a parameter. + * @param stl the sorage layout object to be copied + **/ + public RasStorageLayout(RasStorageLayout stl) + { + spatialDomain = stl.getSpatialDomain(); + tileSize = stl.getTileSize(); + } + + /** + * Returns the current tiling-domain of this storage layout object. + * @return the tiling-domain of this storage layout object + **/ + public final RasMInterval getSpatialDomain() + { + return spatialDomain; + } + + /** + * Sets the tile-size (in bytes) and resets the tiling-domain to null. + * @param size the tile-size (in bytes) + **/ + public void setTileSize(int size) + { + tileSize = size; + spatialDomain = null; + } + + /** + * Returns the current tile-size (in bytes). + * @return the tile-size + **/ + public final int getTileSize() + { + return tileSize; + } + + /** + * Sets the tiling-domain for this storage layout object and resets the tile-size + * to null. + * @param domain the tiling-domain + **/ + public void setTileDomain(String domain) + throws RasResultIsNoIntervalException, RasStreamInputOverflowException, RasIndexOutOfBoundsException + { + spatialDomain = new RasMInterval(domain); + tileSize = 0; + } + + /** + * This method tests if the current storageLayout object is compatible to a given domain. + * @param domain the domain to be compared + * @return true if the tiling-domain of this storage layout object is either null or + * has the same number of dimensions as the given domain, otherwise false + **/ + public boolean isCompatible(RasMInterval domain) + { + if(spatialDomain == null) + return true; + else + return (domain.dimension() == spatialDomain.dimension()); + + } + + /** + * Returns a string representation of this class. + **/ + public String toString() + { + if(spatialDomain != null) + return "\nTileDomain: " + spatialDomain + "\n"; + else + return "\nTileSize: " + tileSize + "\n"; + + } + + +} + -- cgit