Skip to content

Instantly share code, notes, and snippets.

@ntantri
Last active January 10, 2022 13:11
Show Gist options
  • Save ntantri/e23ae305d5671f656b1270d55392b1e1 to your computer and use it in GitHub Desktop.
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
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