// Path: service-library/src/main/java/de/codecentric/resilient/dto/AddressDTO.java
// @JsonInclude(JsonInclude.Include.NON_NULL)
// public class AddressDTO  {
// 
//     @JsonProperty(required = true)
//     private String country;
// 
//     @JsonProperty(required = true)
//     private String city;
// 
//     @JsonProperty(required = true)
//     private String postcode;
// 
//     @JsonProperty(required = true)
//     private String street;
// 
//     @JsonProperty(required = true)
//     private String streetNumber;
// 
//     public AddressDTO() {
//     }
// 
//     public AddressDTO(String country, String city, String postcode, String street, String streetNumber) {
//         this.country = country;
//         this.city = city;
//         this.postcode = postcode;
//         this.street = street;
//         this.streetNumber = streetNumber;
//     }
// 
//     public String getCountry() {
//         return country;
//     }
// 
//     public void setCountry(String country) {
//         this.country = country;
//     }
// 
//     public String getCity() {
//         return city;
//     }
// 
//     public void setCity(String city) {
//         this.city = city;
//     }
// 
//     public String getPostcode() {
//         return postcode;
//     }
// 
//     public void setPostcode(String postcode) {
//         this.postcode = postcode;
//     }
// 
//     public String getStreet() {
//         return street;
//     }
// 
//     public void setStreet(String street) {
//         this.street = street;
//     }
// 
//     public String getStreetNumber() {
//         return streetNumber;
//     }
// 
//     public void setStreetNumber(String streetNumber) {
//         this.streetNumber = streetNumber;
//     }
// 
//     @Override
//     public String toString() {
//         final StringBuilder sb = new StringBuilder("AddressDTO{");
//         sb.append("country='").append(country).append('\'');
//         sb.append(", city='").append(city).append('\'');
//         sb.append(", postcode='").append(postcode).append('\'');
//         sb.append(", street='").append(street).append('\'');
//         sb.append(", streetNumber='").append(streetNumber).append('\'');
//         sb.append('}');
//         return sb.toString();
//     }
// }
// 
// Path: service-library/src/main/java/de/codecentric/resilient/dto/AddressResponseDTO.java
// public class AddressResponseDTO extends FallbackAbstractDTO {
// 
//     @JsonProperty(required = true)
//     private String country;
// 
//     @JsonProperty(required = true)
//     private String city;
// 
//     @JsonProperty(required = true)
//     private String postcode;
// 
//     @JsonProperty(required = true)
//     private String street;
// 
//     @JsonProperty(required = true)
//     private String streetNumber;
// 
//     public AddressResponseDTO() {
//     }
// 
//     public AddressResponseDTO(String country, String city, String postcode, String street, String streetNumber) {
//         this.country = country;
//         this.city = city;
//         this.postcode = postcode;
//         this.street = street;
//         this.streetNumber = streetNumber;
//     }
// 
//     public String getCountry() {
//         return country;
//     }
// 
//     public void setCountry(String country) {
//         this.country = country;
//     }
// 
//     public String getCity() {
//         return city;
//     }
// 
//     public void setCity(String city) {
//         this.city = city;
//     }
// 
//     public String getPostcode() {
//         return postcode;
//     }
// 
//     public void setPostcode(String postcode) {
//         this.postcode = postcode;
//     }
// 
//     public String getStreet() {
//         return street;
//     }
// 
//     public void setStreet(String street) {
//         this.street = street;
//     }
// 
//     public String getStreetNumber() {
//         return streetNumber;
//     }
// 
//     public void setStreetNumber(String streetNumber) {
//         this.streetNumber = streetNumber;
//     }
// 
//     @Override
//     public String toString() {
//         final StringBuilder sb = new StringBuilder("AddressDTO{");
//         sb.append("country='").append(country).append('\'');
//         sb.append(", city='").append(city).append('\'');
//         sb.append(", postcode='").append(postcode).append('\'');
//         sb.append(", street='").append(street).append('\'');
//         sb.append(", streetNumber='").append(streetNumber).append('\'');
//         sb.append('}');
//         return sb.toString();
//     }
// }


import com.netflix.hystrix.exception.HystrixRuntimeException;
import com.netflix.hystrix.exception.HystrixTimeoutException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.client.RestTemplate;
import com.netflix.hystrix.HystrixCommand;
import com.netflix.hystrix.HystrixCommandGroupKey;
import com.netflix.hystrix.HystrixCommandKey;
import de.codecentric.resilient.dto.AddressDTO;
import de.codecentric.resilient.dto.AddressResponseDTO;
package de.codecentric.resilient.transport.api.gateway.commands;


/**
 * @author Benjamin Wilms (xd98870)
 */
public class AddressCommand extends HystrixCommand<AddressResponseDTO> {

    private static final Logger LOGGER = LoggerFactory.getLogger(AddressCommand.class);

// Path: service-library/src/main/java/de/codecentric/resilient/dto/AddressDTO.java
// @JsonInclude(JsonInclude.Include.NON_NULL)
// public class AddressDTO  {
// 
//     @JsonProperty(required = true)
//     private String country;
// 
//     @JsonProperty(required = true)
//     private String city;
// 
//     @JsonProperty(required = true)
//     private String postcode;
// 
//     @JsonProperty(required = true)
//     private String street;
// 
//     @JsonProperty(required = true)
//     private String streetNumber;
// 
//     public AddressDTO() {
//     }
// 
//     public AddressDTO(String country, String city, String postcode, String street, String streetNumber) {
//         this.country = country;
//         this.city = city;
//         this.postcode = postcode;
//         this.street = street;
//         this.streetNumber = streetNumber;
//     }
// 
//     public String getCountry() {
//         return country;
//     }
// 
//     public void setCountry(String country) {
//         this.country = country;
//     }
// 
//     public String getCity() {
//         return city;
//     }
// 
//     public void setCity(String city) {
//         this.city = city;
//     }
// 
//     public String getPostcode() {
//         return postcode;
//     }
// 
//     public void setPostcode(String postcode) {
//         this.postcode = postcode;
//     }
// 
//     public String getStreet() {
//         return street;
//     }
// 
//     public void setStreet(String street) {
//         this.street = street;
//     }
// 
//     public String getStreetNumber() {
//         return streetNumber;
//     }
// 
//     public void setStreetNumber(String streetNumber) {
//         this.streetNumber = streetNumber;
//     }
// 
//     @Override
//     public String toString() {
//         final StringBuilder sb = new StringBuilder("AddressDTO{");
//         sb.append("country='").append(country).append('\'');
//         sb.append(", city='").append(city).append('\'');
//         sb.append(", postcode='").append(postcode).append('\'');
//         sb.append(", street='").append(street).append('\'');
//         sb.append(", streetNumber='").append(streetNumber).append('\'');
//         sb.append('}');
//         return sb.toString();
//     }
// }
// 
// Path: service-library/src/main/java/de/codecentric/resilient/dto/AddressResponseDTO.java
// public class AddressResponseDTO extends FallbackAbstractDTO {
// 
//     @JsonProperty(required = true)
//     private String country;
// 
//     @JsonProperty(required = true)
//     private String city;
// 
//     @JsonProperty(required = true)
//     private String postcode;
// 
//     @JsonProperty(required = true)
//     private String street;
// 
//     @JsonProperty(required = true)
//     private String streetNumber;
// 
//     public AddressResponseDTO() {
//     }
// 
//     public AddressResponseDTO(String country, String city, String postcode, String street, String streetNumber) {
//         this.country = country;
//         this.city = city;
//         this.postcode = postcode;
//         this.street = street;
//         this.streetNumber = streetNumber;
//     }
// 
//     public String getCountry() {
//         return country;
//     }
// 
//     public void setCountry(String country) {
//         this.country = country;
//     }
// 
//     public String getCity() {
//         return city;
//     }
// 
//     public void setCity(String city) {
//         this.city = city;
//     }
// 
//     public String getPostcode() {
//         return postcode;
//     }
// 
//     public void setPostcode(String postcode) {
//         this.postcode = postcode;
//     }
// 
//     public String getStreet() {
//         return street;
//     }
// 
//     public void setStreet(String street) {
//         this.street = street;
//     }
// 
//     public String getStreetNumber() {
//         return streetNumber;
//     }
// 
//     public void setStreetNumber(String streetNumber) {
//         this.streetNumber = streetNumber;
//     }
// 
//     @Override
//     public String toString() {
//         final StringBuilder sb = new StringBuilder("AddressDTO{");
//         sb.append("country='").append(country).append('\'');
//         sb.append(", city='").append(city).append('\'');
//         sb.append(", postcode='").append(postcode).append('\'');
//         sb.append(", street='").append(street).append('\'');
//         sb.append(", streetNumber='").append(streetNumber).append('\'');
//         sb.append('}');
//         return sb.toString();
//     }
// }


// Path: transport-api-gateway/src/main/java/de/codecentric/resilient/transport/api/gateway/commands/AddressCommand.java
import com.netflix.hystrix.exception.HystrixRuntimeException;
import com.netflix.hystrix.exception.HystrixTimeoutException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.client.RestTemplate;
import com.netflix.hystrix.HystrixCommand;
import com.netflix.hystrix.HystrixCommandGroupKey;
import com.netflix.hystrix.HystrixCommandKey;
import de.codecentric.resilient.dto.AddressDTO;
import de.codecentric.resilient.dto.AddressResponseDTO;

package de.codecentric.resilient.transport.api.gateway.commands;


/**
 * @author Benjamin Wilms (xd98870)
 */
public class AddressCommand extends HystrixCommand<AddressResponseDTO> {

    private static final Logger LOGGER = LoggerFactory.getLogger(AddressCommand.class);

    private final AddressDTO addressDTO;