Last active
January 10, 2022 13:11
-
-
Save ntantri/e23ae305d5671f656b1270d55392b1e1 to your computer and use it in GitHub Desktop.
This class acts like a POJO for saving data for mandatory and optional parameters with multiple constructors or setters and getters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.java.sample.tutorials.designpatterns.builder; | |
import java.time.LocalDateTime; | |
import java.time.format.DateTimeFormatter; | |
import java.util.Map; | |
/** | |
* SelectFiltersComplexClassExample class is a placeholder for storing information about UI | |
* based filter selection for fetching a set of results from backend. | |
* <p> | |
* Assuming this class is responsible for applying all the filters | |
* based on the inputs provided to us. We need to generate a final object which would | |
* hold the expected result of filters. | |
*/ | |
public class SelectFiltersComplexNonBuilderExample { | |
private static final int DEFAULT_LIMIT = 100; | |
private String advertiserID; | |
private String campaignID; | |
private int limitFor; | |
private String startDate; | |
private String endDate; | |
private boolean excludeInActiveData; | |
private Map<String, Integer> filterCriteria; | |
public SelectFiltersComplexNonBuilderExample() { } | |
public SelectFiltersComplexNonBuilderExample(String advertiserID, String campaignID, int limitFor, | |
String startDate, String endDate, boolean excludeInActiveData, | |
Map<String, Integer> filterCriteria) { | |
this.advertiserID = advertiserID; | |
this.campaignID = campaignID; | |
this.limitFor = limitFor; | |
this.startDate = startDate; | |
this.endDate = endDate; | |
this.excludeInActiveData = excludeInActiveData; | |
this.filterCriteria = filterCriteria; | |
} | |
public SelectFiltersComplexNonBuilderExample(String advertiserID, String campaignID, int limitFor, | |
String startDate, String endDate) { | |
this(advertiserID, campaignID, limitFor, startDate, endDate, false, null); | |
} | |
public SelectFiltersComplexNonBuilderExample(String advertiserID, String campaignID, | |
String startDate, String endDate) { | |
this(advertiserID, campaignID, DEFAULT_LIMIT, startDate, endDate, false, null); | |
} | |
public SelectFiltersComplexNonBuilderExample(String advertiserID, String campaignID) { | |
this(advertiserID, campaignID, DEFAULT_LIMIT, | |
LocalDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE), | |
LocalDateTime.now().format(DateTimeFormatter.BASIC_ISO_DATE), false, null); | |
} | |
public String getAdvertiserID() { return advertiserID; } | |
public void setAdvertiserID(String advertiserID) { this.advertiserID = advertiserID; } | |
public String getCampaignID() { return campaignID; } | |
public void setCampaignID(String campaignID) { this.campaignID = campaignID; } | |
public int getLimitFor() { return limitFor; } | |
public void setLimitFor(int limitFor) { this.limitFor = limitFor; } | |
public String getStartDate() { return startDate; } | |
public void setStartDate(String startDate) { this.startDate = startDate; } | |
public String getEndDate() { return endDate; } | |
public void setEndDate(String endDate) { this.endDate = endDate; } | |
public boolean isExcludeInActiveData() { return excludeInActiveData; } | |
public void setExcludeInActiveData(boolean excludeInActiveData) { this.excludeInActiveData = excludeInActiveData; } | |
public Map<String, Integer> getFilterCriteria() { return filterCriteria; } | |
public void setFilterCriteria(Map<String, Integer> filterCriteria) { this.filterCriteria = filterCriteria; } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment