Templates by BIGtheme NET

Fastest way of Convertion One Java Object To Another

Description:
Most of the time we need to convert one java object to another java object.
To do this job, one of the best way by using com.google.common.collect.Iterables
Class, we can achieve the task. Converting One Entity to another Entity.

Example 1:
How list of Bank object are converted to list bank names.

import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import org.jetbrains.annotations.Nullable;

public class ConvertionOneJavaObjectToAnother {

public static void main(String[] args) {

Bank sbi = new Bank("SBI", "SBI_CODE", "SBI_IFSC");
Bank icici = new Bank("ICICI", "ICICI_CODE", "ICICI_IFSC");
Bank hdfc = new Bank("HDFC", "HDFC_CODE", "HDFC_IFSC");

List<Bank> banks = new ArrayList<>();
banks.add(sbi);
banks.add(icici);
banks.add(hdfc);

//To get list of Bank Names from List of Banks.
List<String> bankNames = getBankNamesFromBanks(banks);

for (String bankName : bankNames) {
System.out.println("Bank Name is: " + bankName);
}
}

private static List<String> getBankNamesFromBanks(final List<Bank> inBanks) {
return ImmutableList.copyOf(Iterables.transform(inBanks, new Function<Bank, String>() {
@Override
public String apply(@Nullable final Bank inBank) {
return inBank.getBankName();
}
}));
}

public static class Bank {
private String bankName;
private String bankCode;
private String ifscCode;

public Bank(final String inBankName, final String inBankCode, final String inIfscCode) {
bankName = inBankName;
bankCode = inBankCode;
ifscCode = inIfscCode;
}

public String getBankName() {
return bankName;
}
}
}

Out put:
Bank Name is: SBI
Bank Name is: ICICI
Bank Name is: HDFC

Example 2:
I am just extending the code by placing some condition, only the banks whose location is Oakland.

import java.util.ArrayList;
import java.util.List;
import com.google.common.base.Predicate;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;

public class ConvertionOneJavaObjectToAnother {
    public static void main(String[] args) {
        Bank sbi = new Bank("SBI", "SBI_CODE", "SBI_IFSC", "OAK");
        Bank icici = new Bank("ICICI", "ICICI_CODE", "ICICI_IFSC", "OAK");
        Bank hdfc = new Bank("HDFC", "HDFC_CODE", "HDFC_IFSC", "CA");

        final List<Bank> banks = new ArrayList<>();
        banks.add(sbi);
        banks.add(icici);
        banks.add(hdfc);

        //To Get lift of Banks, whose location is Oakland
        final List<Bank> oaklankBanks = getBankInOakland(banks);
        for (Bank bank : oaklankBanks) {
            System.out.println("Bank is:" + bank.getBankName());
        }
    }

    private static List<Bank> getBankInOakland(final List inBanks) {
        return ImmutableList.copyOf(Iterables.filter(inBanks, new Predicate<Bank>() {
            @Override
            public boolean apply(final Bank inBank) {
                return "OAK".equals(inBank.getLocation());
            }
        }));
    }

    public static class Bank {
        private String bankName;
        private String bankCode;
        private String ifscCode;
        private String location;

        public Bank(final String inBankName, final String inBankCode, final String inIfscCode, final String inLocation) {
            bankName = inBankName;
            bankCode = inBankCode;
            ifscCode = inIfscCode;
            location = inLocation;
        }

        public String getLocation() {
            return location;
        }

        public String getBankName() {
            return bankName;
        }
    }
}

Out put:
Bank is:SBI
Bank is:ICICI