@Override
	public Property removeCapabilities(Property property) throws PropertyException
	{
		if(property instanceof DatarateProperty) {
			// data rate required?
			if(getMin() != UNDEFINED) {
				int minDRprovided = ((DatarateProperty) property).getMin();
				
				if(minDRprovided != UNDEFINED) {
					if(getMin() <= minDRprovided) {
						return new DatarateProperty(getMin(), Math.max(getMax(), ((DatarateProperty) property).getMax()), 0);
					} else {
						throw new PropertyException(this, "Min of " +this +" not supported by " +property);
					}
				} else {
					// is there a max value?
					if(((DatarateProperty) property).getMax() != UNDEFINED) {
						throw new PropertyException(this, "Min restricted to " +this +" but " +property +" does not provide it.");
					} else {
						// no data rate restriction -> no changes
						return this;
					}
				}
			} else {
				// no data rate limit -> no changes
				return this;
			}
		} else {
			throw new PropertyException(this, "Parameter " +property +" is not a " +DatarateProperty.class + " object.");
		}
	}