Skip to content

Commit

Permalink
This commit was manufactured by cvs2git to create tag 'RC_412'.
Browse files Browse the repository at this point in the history
  • Loading branch information
secondo cvs2git committed Sep 19, 2018
1 parent e50c5c5 commit f5a5346
Show file tree
Hide file tree
Showing 5 changed files with 326 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
//This file is part of SECONDO.

//Copyright (C) 2014, University in Hagen, Department of Computer Science,
//Database Systems for New Applications.

//SECONDO 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 2 of the License, or
//(at your option) any later version.

//SECONDO 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 SECONDO; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

package mol.datatypes.features;

/**
* Objects of classes that implement this interface can be ordered.
*
* @author Markus Fuessel
*
* @param <T>
* - specifies the concrete type
*/
public interface Orderable<T> extends Comparable<T> {

/**
* If this object lies in the order before the passed object.
*
* @param other
* @return true if this object lies in the order before the passed object, false
* otherwise
*/
public boolean before(T other);

/**
* If this object lies in the order after the passed object.
*
* @param other
* @return true if this object lies in the order after the passed object, false
* otherwise
*/
public boolean after(T other);

/**
* Check if this object is adjacent to the passed object
* <p>
* Depends on specific type {@code <T>}, implementation must therefore defined
* by the concrete class
*
* @param other
* - the other object
* @return true if this object and the passed one are adjacent, false otherwise
*/
public boolean adjacent(T other);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
//This file is part of SECONDO.

//Copyright (C) 2014, University in Hagen, Department of Computer Science,
//Database Systems for New Applications.

//SECONDO 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 2 of the License, or
//(at your option) any later version.

//SECONDO 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 SECONDO; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

package mol.datatypes.features;

import mol.datatypes.spatial.util.Rectangle;

/**
* Marker interface for spatial objects
*
* @author Markus Fuessel
*/
public interface Spatial {

/**
* Verify if the spatial object is empty
*
* @return true, if the spatial object is empty
*/
boolean isEmpty();

/**
* Get the minimum bounding rectangle of the spatial object
*
* @return a 'Rectangle' object
*/
Rectangle getBoundingBox();

/**
* Is this object defined
*
* @return true if object is defined, false otherwise
*/
boolean isDefined();

/**
* Set the defined flag of this Object
*
* @param defined
*/
void setDefined(final boolean defined);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
//This file is part of SECONDO.

//Copyright (C) 2014, University in Hagen, Department of Computer Science,
//Database Systems for New Applications.

//SECONDO 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 2 of the License, or
//(at your option) any later version.

//SECONDO 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 SECONDO; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package mol.datatypes.unit.spatial;

import mol.datatypes.interval.Period;
import mol.datatypes.spatial.Point;
import mol.datatypes.unit.UnitObject;

/**
* Abstract base class for 'UnitPoint' objects
*
* @author Markus Fuessel
*/
public abstract class UnitPoint extends UnitSpatial<Point> {

/**
* Constructor for an undefined 'UnitPoint' object<br>
* Required for subclasses
*/
protected UnitPoint() {
}

/**
* Base constructor for a 'UnitPoint' object<br>
* Required for subclasses
*
* @param period,
* the valid time period of this unit
*/
protected UnitPoint(Period period) {
super(period);
}

/*
* (non-Javadoc)
*
* @see
* mol.datatypes.unit.UnitObject#finalEqualToInitialValue(mol.datatypes.unit.
* UnitObject)
*/
@Override
public boolean finalEqualToInitialValue(UnitObject<Point> otherUnitObject) {
return getFinal().almostEqual(otherUnitObject.getInitial());
}

/*
* (non-Javadoc)
*
* @see mol.datatypes.unit.UnitObject#atPeriod(mol.datatypes.interval.Period)
*/
@Override
public abstract UnitPoint atPeriod(Period period);

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
//This file is part of SECONDO.

//Copyright (C) 2014, University in Hagen, Department of Computer Science,
//Database Systems for New Applications.

//SECONDO 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 2 of the License, or
//(at your option) any later version.

//SECONDO 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 SECONDO; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package mol.datatypes.unit.spatial;

import java.util.List;

import mol.datatypes.interval.Period;
import mol.datatypes.spatial.Region;
import mol.datatypes.unit.spatial.util.MovableSegment;

/**
* Abstract base class for 'UnitRegion' objects
*
* @author Markus Fuessel
*/
public abstract class UnitRegion extends UnitSpatial<Region> {

/**
* Constructor for an undefined 'UnitRegion' object<br>
* Required for subclasses
*/
protected UnitRegion() {
}

/**
* Base constructor for a 'UnitRegion' object<br>
* Required for subclasses
*
* @param period,
* the valid time period of this unit
*/
protected UnitRegion(Period period) {
super(period);
}

/*
* (non-Javadoc)
*
* @see mol.datatypes.unit.UnitObject#atPeriod(mol.datatypes.interval.Period)
*/
@Override
public abstract UnitRegion atPeriod(Period period);

/**
* Get the number of moving faces in this 'UnitRegion' object
*
* @return number of moving faces
*/
public abstract int getNoMovingFaces();

/**
* Get the all moving segments
*
* @return list of 'MovableSegment' objects
*/
public abstract List<MovableSegment> getMovingSegments();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
//This file is part of SECONDO.

//Copyright (C) 2014, University in Hagen, Department of Computer Science,
//Database Systems for New Applications.

//SECONDO 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 2 of the License, or
//(at your option) any later version.

//SECONDO 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 SECONDO; if not, write to the Free Software
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

package mol.datatypes.unit.spatial;

import mol.datatypes.GeneralType;
import mol.datatypes.features.Spatial;
import mol.datatypes.interval.Period;
import mol.datatypes.spatial.util.Rectangle;
import mol.datatypes.unit.UnitObject;

/**
* Abstract base class for all 'UnitSpatial' subclasses
*
* @author Markus Fuessel
*
* @param <T>
* - specifies the spatial type
*/
public abstract class UnitSpatial<T extends GeneralType & Spatial> extends UnitObject<T> {

/**
* Constructor for an undefined 'UnitSpatial' object<br>
* Required for subclasses
*/
protected UnitSpatial() {
}

/**
* Base constructor for a 'UnitSpatial' object<br>
* Required for subclasses
*
* @param period
* - valid time period for this unit
*/
protected UnitSpatial(Period period) {
super(period);
}

/**
* Method to get the bounding box of the spatial projection of the spatial unit
* object
*
* @return the projectionBoundingBox, a 'Rectangle' object
*/
public abstract Rectangle getProjectionBoundingBox();

}

0 comments on commit f5a5346

Please sign in to comment.