// Path: biller-simulator-gateway-pln/src/main/java/com/artivisi/biller/simulator/gateway/pln/entity/InquiryPostpaidResponse.java
// @Entity @Table(name="inquiry_postpaid_response")
// public class InquiryPostpaidResponse {
// 	
// 	@Id @GeneratedValue(generator = "system-uuid")
//     @GenericGenerator(name = "system-uuid", strategy = "uuid")
// 	private String id;
// 	
// 	@Column(nullable=false)
// 	private String switcher;
// 	@Column(nullable=false)
// 	private String bank;
// 	@Column(nullable=false)
// 	private String stan;
// 	
// 	@OneToMany(mappedBy="inquiryPostpaidResponse", cascade=CascadeType.ALL, orphanRemoval=true)
// 	private List<InquiryPostpaidResponseDetail> details = new ArrayList<InquiryPostpaidResponseDetail>();
// 	
// 	public List<InquiryPostpaidResponseDetail> getDetails() {
// 		return details;
// 	}
// 	public void setDetails(List<InquiryPostpaidResponseDetail> details) {
// 		this.details = details;
// 	}
// 	public String getId() {
// 		return id;
// 	}
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 	public String getSwitcher() {
// 		return switcher;
// 	}
// 	public void setSwitcher(String switcher) {
// 		this.switcher = switcher;
// 	}
// 	public String getBank() {
// 		return bank;
// 	}
// 	public void setBank(String bank) {
// 		this.bank = bank;
// 	}
// 	public String getStan() {
// 		return stan;
// 	}
// 	public void setStan(String stan) {
// 		this.stan = stan;
// 	}
// }
// 
// Path: biller-simulator-gateway-pln/src/main/java/com/artivisi/biller/simulator/gateway/pln/entity/InquiryPostpaidResponseDetail.java
// @Entity @Table(name="inquiry_postpaid_response_detail")
// public class InquiryPostpaidResponseDetail {
// 	@Id @GeneratedValue(generator = "system-uuid")
//     @GenericGenerator(name = "system-uuid", strategy = "uuid")
// 	private String id;
// 	
// 	@ManyToOne
// 	@JoinColumn(name="id_inquiry_postpaid_response", nullable=false)
// 	private InquiryPostpaidResponse inquiryPostpaidResponse;
// 	
// 	@ManyToOne
// 	@JoinColumn(name="id_tagihan_pascabayar", nullable=false)
// 	private TagihanPascabayar tagihanPascabayar;
// 
// 	public String getId() {
// 		return id;
// 	}
// 
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 
// 	public InquiryPostpaidResponse getInquiryPostpaidResponse() {
// 		return inquiryPostpaidResponse;
// 	}
// 
// 	public void setInquiryPostpaidResponse(
// 			InquiryPostpaidResponse inquiryPostpaidResponse) {
// 		this.inquiryPostpaidResponse = inquiryPostpaidResponse;
// 	}
// 
// 	public TagihanPascabayar getTagihanPascabayar() {
// 		return tagihanPascabayar;
// 	}
// 
// 	public void setTagihanPascabayar(TagihanPascabayar tagihanPascabayar) {
// 		this.tagihanPascabayar = tagihanPascabayar;
// 	}
// 	
// 	
// }
// 
// Path: biller-simulator-gateway-pln/src/main/java/com/artivisi/biller/simulator/gateway/pln/service/PlnService.java
// public interface PlnService {
// 	public void save(InquiryPostpaidResponse response);
// 	public InquiryPostpaidResponse findInquiryPostpaidResponse(String id);
// }


import org.apache.commons.lang.StringUtils;
import org.hibernate.Hibernate;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.artivisi.biller.simulator.gateway.pln.entity.InquiryPostpaidResponse;
import com.artivisi.biller.simulator.gateway.pln.entity.InquiryPostpaidResponseDetail;
import com.artivisi.biller.simulator.gateway.pln.service.PlnService;
/**
 * Copyright (C) 2011 ArtiVisi Intermedia <info@artivisi.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.artivisi.biller.simulator.gateway.pln.service.impl;



@Service @Transactional
public class PlnServiceImpl implements PlnService {

	@Autowired private SessionFactory sessionFactory;
	
	@Override
	public void save(InquiryPostpaidResponse response) {
		sessionFactory.getCurrentSession().saveOrUpdate(response);
	}

	@Override
	public InquiryPostpaidResponse findInquiryPostpaidResponse(String id) {
		if(StringUtils.isEmpty(id)) return null;
		InquiryPostpaidResponse i = (InquiryPostpaidResponse) sessionFactory.getCurrentSession().get(InquiryPostpaidResponse.class, id);
		if(i!=null){
// Path: biller-simulator-gateway-pln/src/main/java/com/artivisi/biller/simulator/gateway/pln/entity/InquiryPostpaidResponse.java
// @Entity @Table(name="inquiry_postpaid_response")
// public class InquiryPostpaidResponse {
// 	
// 	@Id @GeneratedValue(generator = "system-uuid")
//     @GenericGenerator(name = "system-uuid", strategy = "uuid")
// 	private String id;
// 	
// 	@Column(nullable=false)
// 	private String switcher;
// 	@Column(nullable=false)
// 	private String bank;
// 	@Column(nullable=false)
// 	private String stan;
// 	
// 	@OneToMany(mappedBy="inquiryPostpaidResponse", cascade=CascadeType.ALL, orphanRemoval=true)
// 	private List<InquiryPostpaidResponseDetail> details = new ArrayList<InquiryPostpaidResponseDetail>();
// 	
// 	public List<InquiryPostpaidResponseDetail> getDetails() {
// 		return details;
// 	}
// 	public void setDetails(List<InquiryPostpaidResponseDetail> details) {
// 		this.details = details;
// 	}
// 	public String getId() {
// 		return id;
// 	}
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 	public String getSwitcher() {
// 		return switcher;
// 	}
// 	public void setSwitcher(String switcher) {
// 		this.switcher = switcher;
// 	}
// 	public String getBank() {
// 		return bank;
// 	}
// 	public void setBank(String bank) {
// 		this.bank = bank;
// 	}
// 	public String getStan() {
// 		return stan;
// 	}
// 	public void setStan(String stan) {
// 		this.stan = stan;
// 	}
// }
// 
// Path: biller-simulator-gateway-pln/src/main/java/com/artivisi/biller/simulator/gateway/pln/entity/InquiryPostpaidResponseDetail.java
// @Entity @Table(name="inquiry_postpaid_response_detail")
// public class InquiryPostpaidResponseDetail {
// 	@Id @GeneratedValue(generator = "system-uuid")
//     @GenericGenerator(name = "system-uuid", strategy = "uuid")
// 	private String id;
// 	
// 	@ManyToOne
// 	@JoinColumn(name="id_inquiry_postpaid_response", nullable=false)
// 	private InquiryPostpaidResponse inquiryPostpaidResponse;
// 	
// 	@ManyToOne
// 	@JoinColumn(name="id_tagihan_pascabayar", nullable=false)
// 	private TagihanPascabayar tagihanPascabayar;
// 
// 	public String getId() {
// 		return id;
// 	}
// 
// 	public void setId(String id) {
// 		this.id = id;
// 	}
// 
// 	public InquiryPostpaidResponse getInquiryPostpaidResponse() {
// 		return inquiryPostpaidResponse;
// 	}
// 
// 	public void setInquiryPostpaidResponse(
// 			InquiryPostpaidResponse inquiryPostpaidResponse) {
// 		this.inquiryPostpaidResponse = inquiryPostpaidResponse;
// 	}
// 
// 	public TagihanPascabayar getTagihanPascabayar() {
// 		return tagihanPascabayar;
// 	}
// 
// 	public void setTagihanPascabayar(TagihanPascabayar tagihanPascabayar) {
// 		this.tagihanPascabayar = tagihanPascabayar;
// 	}
// 	
// 	
// }
// 
// Path: biller-simulator-gateway-pln/src/main/java/com/artivisi/biller/simulator/gateway/pln/service/PlnService.java
// public interface PlnService {
// 	public void save(InquiryPostpaidResponse response);
// 	public InquiryPostpaidResponse findInquiryPostpaidResponse(String id);
// }


// Path: biller-simulator-gateway-pln/src/main/java/com/artivisi/biller/simulator/gateway/pln/service/impl/PlnServiceImpl.java
import org.apache.commons.lang.StringUtils;
import org.hibernate.Hibernate;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.artivisi.biller.simulator.gateway.pln.entity.InquiryPostpaidResponse;
import com.artivisi.biller.simulator.gateway.pln.entity.InquiryPostpaidResponseDetail;
import com.artivisi.biller.simulator.gateway.pln.service.PlnService;

/**
 * Copyright (C) 2011 ArtiVisi Intermedia <info@artivisi.com>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *         http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.artivisi.biller.simulator.gateway.pln.service.impl;



@Service @Transactional
public class PlnServiceImpl implements PlnService {

	@Autowired private SessionFactory sessionFactory;
	
	@Override
	public void save(InquiryPostpaidResponse response) {
		sessionFactory.getCurrentSession().saveOrUpdate(response);
	}

	@Override
	public InquiryPostpaidResponse findInquiryPostpaidResponse(String id) {
		if(StringUtils.isEmpty(id)) return null;
		InquiryPostpaidResponse i = (InquiryPostpaidResponse) sessionFactory.getCurrentSession().get(InquiryPostpaidResponse.class, id);
		if(i!=null){
			for (InquiryPostpaidResponseDetail detail : i.getDetails()) {