import(rJava)

#S4 Classes
exportClasses(Farm,CompositeFarm,FarmRepresentation,FarmParameters,ObjectiveParameters,Parameters)

# Constructors for classes
export(CompositeFarm,Farm,FarmParameters,ObjectiveParameters)

#S4 Generic Methods defined by FarmRepresentation
exportMethods(guts,show,solvelp,model,isSolved,profit,eo,cropArea,cropNames,objectiveNames,objectiveValues,objectiveScaleFactors,setInputCost,constrainArea)

#S4 Generic Methods defined by Farm
#exportMethods(set)

#S4 Generic Methods defined by Parameters
exportMethods(document,show)

#S4 Methods defined by ObjectiveParameters
export(setWeightForObjective,getWeightForObjective)

# Methods defined in xml.R
#export(parseXMLDocument)

# Methods defined in database.R for accessing provided xml files
export(defaultArableFarmParameters,defaultArableObjectiveParameters)

# General methods defined in FarmParameters-class.R
export(setPriceForCrop,setSubsidyForCrop)
export(setSolverType,getSolverType)
export(setRelativePriceForCrop,setRelativeCost,setRelativeRotationPenalties,setRelativeLabourRequirements,setRelativeYieldForCrop,setPriceForCrop,setSubsidyForCrop)

# S3 methods to coerce farms into data frames
S3method(as.data.frame, FarmRepresentation)
S3method(as.data.frame, Farm)
S3method(as.data.frame, CompositeFarm)


