// Path: src/test/java/ch/ifocusit/plantuml/test/helper/domain/Devise.java
// public enum Devise {
//     CHF, EUR, USD
// }
// 
// Path: src/test/java/ch/ifocusit/plantuml/test/helper/domain/Driver.java
// public class Driver {
//     private String name;
//     private Long ignored;
//     private List<Car> cars = new ArrayList<>();
// 
//     public void buy(Car car) {
//         cars.add(car);
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(final String name) {
//         this.name = name;
//     }
// 
//     public List<Car> getCars() {
//         return cars;
//     }
// 
//     public void setCars(final List<Car> cars) {
//         this.cars = cars;
//     }
// 
//     public void addCar(Car car) {
//         cars.add(car);
//     }
// }
// 
// Path: src/test/java/ch/ifocusit/plantuml/test/helper/domain/Price.java
// public class Price implements Serializable {
//     public static final long serialVersionUID = 42L;
//     static final String CONST = "aConstant";
// 
//     private BigDecimal amount;
//     private Devise devise;
// 
//     public static Price of(final BigDecimal amount, final Devise devise) {
//         final Price price = new Price();
//         price.amount = amount;
//         price.devise = devise;
//         return price;
//     }
// }


import java.util.HashSet;
import java.util.Set;
import ch.ifocusit.plantuml.test.helper.domain.Devise;
import ch.ifocusit.plantuml.test.helper.domain.Driver;
import ch.ifocusit.plantuml.test.helper.domain.Price;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import java.math.BigDecimal;
import java.util.Collection;
/*-
 * Plantuml builder
 *
 * Copyright (C) 2017 Focus IT
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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 ch.ifocusit.plantuml.test.helper.domain.material;



@Machine
public class Car implements Vehicule {

    @Machine
    // must be ignored
    private Long ignored;
    @Machine
    private String brand;
    @Machine
    private String model;

    private Set<Driver> drivers = new HashSet<>();

    private Price price;

    @Machine
    private Collection<Wheel> wheels;

// Path: src/test/java/ch/ifocusit/plantuml/test/helper/domain/Devise.java
// public enum Devise {
//     CHF, EUR, USD
// }
// 
// Path: src/test/java/ch/ifocusit/plantuml/test/helper/domain/Driver.java
// public class Driver {
//     private String name;
//     private Long ignored;
//     private List<Car> cars = new ArrayList<>();
// 
//     public void buy(Car car) {
//         cars.add(car);
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(final String name) {
//         this.name = name;
//     }
// 
//     public List<Car> getCars() {
//         return cars;
//     }
// 
//     public void setCars(final List<Car> cars) {
//         this.cars = cars;
//     }
// 
//     public void addCar(Car car) {
//         cars.add(car);
//     }
// }
// 
// Path: src/test/java/ch/ifocusit/plantuml/test/helper/domain/Price.java
// public class Price implements Serializable {
//     public static final long serialVersionUID = 42L;
//     static final String CONST = "aConstant";
// 
//     private BigDecimal amount;
//     private Devise devise;
// 
//     public static Price of(final BigDecimal amount, final Devise devise) {
//         final Price price = new Price();
//         price.amount = amount;
//         price.devise = devise;
//         return price;
//     }
// }


// Path: src/test/java/ch/ifocusit/plantuml/test/helper/domain/material/Car.java
import java.util.HashSet;
import java.util.Set;
import ch.ifocusit.plantuml.test.helper.domain.Devise;
import ch.ifocusit.plantuml.test.helper.domain.Driver;
import ch.ifocusit.plantuml.test.helper.domain.Price;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
import java.math.BigDecimal;
import java.util.Collection;

/*-
 * Plantuml builder
 *
 * Copyright (C) 2017 Focus IT
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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 ch.ifocusit.plantuml.test.helper.domain.material;



@Machine
public class Car implements Vehicule {

    @Machine
    // must be ignored
    private Long ignored;
    @Machine
    private String brand;
    @Machine
    private String model;

    private Set<Driver> drivers = new HashSet<>();

    private Price price;

    @Machine
    private Collection<Wheel> wheels;

    public Driver buyBy(Driver driver, BigDecimal amount, Devise devise) {