mftool-java

 

This repository contains the MF TOOL - JAVA source code. MF TOOL - JAVA is a Java library developed to ease the process of working with Indian Mutual Funds. It's powerful, actively maintained and easy to use.

Introduction  •  Installation  •  Usage  •  Documentation  •  Issue?

# Introduction This mf-tool java library provides simple APIs/functions/methods to work with Indian Mutual Funds. You can: - Fetch a list of all mutual fund schemes. - Fetch a list of matching mutual fund schemes based on provided keywords. - Fetch historic or current NAV (Net Asset Value) for a fund. - Fetch details for a fund and fund house. - Integrate this with any Java project. ## Installation ##### Maven ``` com.webencyclop.core mftool-java 1.0.4 ``` ##### Graddle ``` implementation 'com.webencyclop.core:mftool-java:1.0.4' ``` For other dependency management tool, please visit https://search.maven.org/artifact/com.webencyclop.core/mftool-java ## Usage Sample code that shows how to use the library:
``` MFTool tool = new MFTool(); tool.matchingScheme("Axis"); //-- get a list of all schemes with Axis in its name tool.getCurrentNav("120503"); //-- get current nav ``` The other available methods are described in the next section. ## Documentation Multiple methods provide ways to work with mutual funds and related data. Those are listed below in detail. ### 1. How to initialize an MFTool object ``` MFTool tool = new MFTool(); ``` This will create the object for you, but it's recommended that you create this object as a singleton object. The object uses a caching mechanism, which under-the-hood caches the values of historic nav and other static information to improve the performance.
If you are using the Spring project, you can create the bean in ``@Configuration`` configuration class. ``` @Configuration public class MFToolConfig{ @Bean public MFTool initializeMfTool() { MFTool tool = new MFTool(); return tool; } } ``` You can use MFTool in other services using ``@Inject`` or ``@autowired`` annotation. ``` @Service public class MyService { @Autowired private MFTool tool; public void getCurrentNav(String scheme) { BigDecimal nav = tool.getCurrentNav(scheme); } } ``` ### 2. How to fetch a list of all mutual fund schemes ``` @Service public class MyService { @Autowired private MFTool tool; public List fetchListOfAllMutualFundSchemes() { List list = tool.allSchemes(); } } ``` ### 3. How to fetch a list of all schemes matching a keyword ``` @Service public class MyService { @Autowired private MFTool tool; public List getCurrentNav(String schemeCode) { List list = tool.matchingScheme("Axis"); // This will fetch MF schemes that have "Axis" in the name. } } ``` ### 4. Current NAV for the mutual fund scheme An example schemeCode is 120503 (_Axis Long Term Equity Fund - Direct Plan - Growth Option_).
When we fetch a list of mutual funds, we get the scheme-name, and its corresponding schemeCode.
A scheme code uniquely identifies the mutual fund scheme. ``` @Service public class MyService { @Autowired private MFTool tool; public List fetchListSchemes(String schemeCode) { BigDecimal nav = tool.getCurrentNav(schemeCode); } } ``` ### 5. NAV on specific date for the scheme LocalDate is used to define the date. For example:
``LocalDate date = LocalDate.parse("2021-07-13");`` ``` @Service public class MyService { @Autowired private MFTool tool; public List getNavOnDate(String schemeCode, LocalDate date) { BigDecimal nav = tool.getNavFor("120503", date); } } ``` ### 6. List of historic NAV for the scheme This method provides a list of all the NAVs for the given scheme. ``` @Service public class MyService { @Autowired private MFTool tool; public List getNavOnDate(String schemeCode) { List list = tool.historicNavForScheme(schemeCode); } } ``` ## Issue This repository is maintained actively, so if you face any issue please raise an issue.

Liked the work ?

Give the repository a star :-)