You can buy this project and download/modify it how often you want.
<<Java Class>> ForwardCurveFromDiscountCurve net.finmath.marketdata.model.curves ForwardCurveFromDiscountCurve(String,double) getForward(AnalyticModelInterface,double):double getDiscountCurveName():String getPaymentOffset():double getValue(double):double getValue(AnalyticModelInterface,double):double getParameter():double[] setParameter(double[]):void <<Java Class>> DiscountCurve net.finmath.marketdata.model.curves createDiscountCurveFromDiscountFactors(String,double[],double[]):DiscountCurve createDiscountFactorsFromForwardRates(String,TimeDiscretizationInterface,double[]):DiscountCurveInterface getDiscountFactor(double):double getDiscountFactor(AnalyticModelInterface,double):double getZeroRate(double):double getZeroRates(double[]):double[] toString():String getParameter():double[] setParameter(double[]):void <<Java Class>> Curve net.finmath.marketdata.model.curves Curve(String,InterpolationMethod,ExtrapolationMethod,InterpolationEntity) getValue(double):double getValue(AnalyticModelInterface,double):double addPoint(double,double):void getParameter():double[] setParameter(double[]):void toString():String getCloneForParameter(double[]):CurveInterface <<Java Class>> ForwardCurve net.finmath.marketdata.model.curves ForwardCurve(String,String,double) ForwardCurve(String,InterpolationEntityForward,String,double) createForwardCurveFromForwards(String,double[],double[],double):ForwardCurve createForwardCurveFromForwards(String,double[],double[],AnalyticModelInterface,String,double):ForwardCurve getForward(AnalyticModelInterface,double):double getDiscountCurveName():String getPaymentOffset():double <<Java Interface>> DiscountCurveInterface net.finmath.marketdata.model.curves getDiscountFactor(double):double getDiscountFactor(AnalyticModelInterface,double):double <<Java Interface>> ForwardCurveInterface net.finmath.marketdata.model.curves getForward(AnalyticModelInterface,double):double getDiscountCurveName():String getPaymentOffset():double <<Java Class>> AnalyticModel net.finmath.marketdata.model AnalyticModel() AnalyticModel(CurveInterface[]) AnalyticModel(Collection<CurveInterface>) getCurve(String):CurveInterface setCurve(CurveInterface):void setCurves(CurveInterface[]):void getDiscountCurve(String):DiscountCurveInterface getForwardCurve(String):ForwardCurveInterface getCloneForParameter(Map<CurveInterface,double[]>):AnalyticModelInterface <<Java Interface>> CurveInterface net.finmath.marketdata.model.curves getName():String getValue(double):double getValue(AnalyticModelInterface,double):double getCloneForParameter(double[]):CurveInterface <<Java Interface>> AnalyticModelInterface net.finmath.marketdata.model getCurve(String):CurveInterface setCurve(CurveInterface):void getDiscountCurve(String):DiscountCurveInterface getForwardCurve(String):ForwardCurveInterface getCloneForParameter(Map<CurveInterface,double[]>):AnalyticModelInterface <<Java Class>> AbstractCurve net.finmath.marketdata.model.curves AbstractCurve(String) getName():String getValue(double):double getValues(double[]):double[] toString():String getCloneForParameter(double[]):CurveInterface -curvesMap 0..*