################################################################################
## Exports
################################################################################
exportPattern("^[^\\.]")

# Needed within the portfolio book
export(.fportfolio.plot.1)
export(.fportfolio.plot.2)
export(.fportfolio.plot.3)
export(.fportfolio.plot.4)
export(.fportfolio.plot.5)
export(.fportfolio.plot.6)
export(.fportfolio.plot.7)
export(.fportfolio.plot.8)

################################################################################
## Imports
################################################################################
import(methods)
import(timeDate)
import(timeSeries)
import(fBasics)
import(fAssets)

import(fCopulae)
import(robustbase)
import(MASS)
import(Rglpk)
import(slam)
import(Rsolnp)
import(quadprog)
import(kernlab)
import(rneos)

importFrom("grDevices", heat.colors, rainbow, topo.colors)
importFrom("graphics", axis, barplot, box, contour, grid, hist, image, layout, lcm,
	legend, mtext, par, pie, plot.new, plot.window, polygon, rect, text, title)
importFrom("stats", approx, cov, density, dnorm, nlminb, optim, optimize, pnorm,
	qnorm, rcauchy, rnorm, runif, sd, ts.plot, var, weights)
importFrom("utils", capture.output, data, packageDescription)

################################################################################
## S3 Exports
################################################################################
S3method("print", "solver")


S3method("getData", "fPFOLIODATA")
S3method("getSeries", "fPFOLIODATA")
S3method("getNAssets", "fPFOLIODATA")
S3method("getUnits", "fPFOLIODATA")

S3method("getStatistics", "fPFOLIODATA")
S3method("getMean", "fPFOLIODATA")
S3method("getCov", "fPFOLIODATA")
S3method("getEstimator", "fPFOLIODATA")
S3method("getMu", "fPFOLIODATA")
S3method("getSigma", "fPFOLIODATA")
S3method("getTailRisk", "fPFOLIODATA")


S3method("plot", "fPORTFOLIO")
S3method("summary", "fPORTFOLIO")

S3method("getData", "fPORTFOLIO")
S3method("getSeries", "fPORTFOLIO")
S3method("getNAssets", "fPORTFOLIO")
S3method("getUnits", "fPORTFOLIO")

S3method("getStatistics", "fPORTFOLIO")
S3method("getMean", "fPORTFOLIO")
S3method("getCov", "fPORTFOLIO")
S3method("getEstimator", "fPORTFOLIO")
S3method("getMu", "fPORTFOLIO")
S3method("getSigma", "fPORTFOLIO")

S3method("getSpec", "fPORTFOLIO")
S3method("getModel", "fPORTFOLIO")
S3method("getType", "fPORTFOLIO")
S3method("getOptimize", "fPORTFOLIO")
S3method("getEstimator", "fPORTFOLIO")
S3method("getTailRisk", "fPORTFOLIO")
S3method("getParams", "fPORTFOLIO")
S3method("getAlpha", "fPORTFOLIO")
S3method("getA", "fPORTFOLIO")

S3method("getPortfolio", "fPORTFOLIO")
S3method("getWeights", "fPORTFOLIO")
S3method("getTargetReturn", "fPORTFOLIO")
S3method("getTargetRisk", "fPORTFOLIO")
S3method("getRiskFreeRate", "fPORTFOLIO")
S3method("getNFrontierPoints", "fPORTFOLIO")
S3method("getStatus", "fPORTFOLIO")

S3method("getOptim", "fPORTFOLIO")
S3method("getSolver", "fPORTFOLIO")
S3method("getObjective", "fPORTFOLIO")
S3method("getOptions", "fPORTFOLIO")
S3method("getControl", "fPORTFOLIO")
S3method("getTrace", "fPORTFOLIO")
S3method("getCovRiskBudgets", "fPORTFOLIO")

S3method("getConstraints", "fPORTFOLIO")
S3method("getTailRiskBudgets", "fPORTFOLIO")


S3method("getPortfolio", "fPFOLIOVAL")
S3method("getWeights", "fPFOLIOVAL")
S3method("getCovRiskBudgets", "fPFOLIOVAL")
S3method("getTargetReturn", "fPFOLIOVAL")
S3method("getTargetRisk", "fPFOLIOVAL")
S3method("getAlpha", "fPFOLIOVAL")
S3method("getRiskFreeRate", "fPFOLIOVAL")
S3method("getNFrontierPoints", "fPFOLIOVAL")
S3method("getStatus", "fPFOLIOVAL")


S3method("getModel", "fPFOLIOSPEC")
S3method("getType", "fPFOLIOSPEC")
S3method("getOptimize", "fPFOLIOSPEC")
S3method("getEstimator", "fPFOLIOSPEC")
S3method("getTailRisk", "fPFOLIOSPEC")
S3method("getParams", "fPFOLIOSPEC")
S3method("getAlpha", "fPFOLIOSPEC")
S3method("getA", "fPFOLIOSPEC")

S3method("getPortfolio", "fPFOLIOSPEC")
S3method("getWeights", "fPFOLIOSPEC")
S3method("getTargetReturn", "fPFOLIOSPEC")
S3method("getTargetRisk", "fPFOLIOSPEC")
S3method("getRiskFreeRate", "fPFOLIOSPEC")
S3method("getNFrontierPoints", "fPFOLIOSPEC")
S3method("getStatus", "fPFOLIOSPEC")

S3method("getOptim", "fPFOLIOSPEC")
S3method("getSolver", "fPFOLIOSPEC")
S3method("getObjective", "fPFOLIOSPEC")
S3method("getOptions", "fPFOLIOSPEC")
S3method("getControl", "fPFOLIOSPEC")
S3method("getTrace", "fPFOLIOSPEC")
S3method("getMessages", "fPFOLIOSPEC")


S3method("getWindows", "fPFOLIOBACKTEST")
S3method("getWindowsFun", "fPFOLIOBACKTEST")
S3method("getWindowsParams", "fPFOLIOBACKTEST")
S3method("getWindowsHorizon", "fPFOLIOBACKTEST")
S3method("getSmoother", "fPFOLIOBACKTEST")
S3method("getSmootherFun", "fPFOLIOBACKTEST")
S3method("getSmootherParams", "fPFOLIOBACKTEST")
S3method("getSmootherLambda", "fPFOLIOBACKTEST")
S3method("getSmootherDoubleSmoothing", "fPFOLIOBACKTEST")
S3method("getSmootherInitialWeights", "fPFOLIOBACKTEST")
S3method("getSmootherSkip", "fPFOLIOBACKTEST")
S3method("getStrategy", "fPFOLIOBACKTEST")
S3method("getStrategyFun", "fPFOLIOBACKTEST")
S3method("getStrategyParams", "fPFOLIOBACKTEST")
S3method("getMessages", "fPFOLIOBACKTEST")
