// Path: src/main/java/com/presidentio/testdatagenerator/parser/JsonSchemaSerializer.java
// public class JsonSchemaSerializer implements SchemaSerializer {
// 
//     private ObjectMapper objectMapper;
// 
//     public JsonSchemaSerializer() {
//         objectMapper = new ObjectMapper();
//         SimpleDeserializers simpleDeserializers = new SimpleDeserializers();
//         simpleDeserializers.addDeserializer(String.class, new StringDeserializer());
//         objectMapper.setDeserializerProvider(
//                 new StdDeserializerProvider().withAdditionalDeserializers(simpleDeserializers));
//     }
// 
//     @Override
//     public Schema deserialize(InputStream inputStream) throws IOException {
//         return objectMapper.readValue(inputStream, Schema.class);
//     }
// 
//     @Override
//     public Schema deserialize(String string) throws IOException {
//         return objectMapper.readValue(string, Schema.class);
//     }
// 
//     @Override
//     public void serialize(Schema schema, OutputStream outputStream) throws IOException {
//         objectMapper.writeValue(outputStream, schema);
//     }
// 
//     @Override
//     public String serialize(Schema schema) throws IOException {
//         return objectMapper.writeValueAsString(schema);
//     }
// 
// }
// 
// Path: src/main/java/com/presidentio/testdatagenerator/parser/SchemaSerializer.java
// public interface SchemaSerializer {
// 
//     Schema deserialize(InputStream inputStream) throws IOException;
// 
//     Schema deserialize(String string) throws IOException;
// 
//     void serialize(Schema schema, OutputStream outputStream) throws IOException;
// 
//     String serialize(Schema schema) throws IOException;
// 
// }


import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.ParameterException;
import com.presidentio.testdatagenerator.model.*;
import com.presidentio.testdatagenerator.parser.JsonSchemaSerializer;
import com.presidentio.testdatagenerator.parser.SchemaSerializer;
import java.io.FileInputStream;
import java.io.IOException;
/**
 * 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
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * 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.presidentio.testdatagenerator;



public class Starter {

    @Parameter(names = "-a", description = "async, default true")
    private Boolean async = true;

    @Parameter(names = "-th", description = "thread count, work only when async true, default is processors count")
    private Integer threadCount;

// Path: src/main/java/com/presidentio/testdatagenerator/parser/JsonSchemaSerializer.java
// public class JsonSchemaSerializer implements SchemaSerializer {
// 
//     private ObjectMapper objectMapper;
// 
//     public JsonSchemaSerializer() {
//         objectMapper = new ObjectMapper();
//         SimpleDeserializers simpleDeserializers = new SimpleDeserializers();
//         simpleDeserializers.addDeserializer(String.class, new StringDeserializer());
//         objectMapper.setDeserializerProvider(
//                 new StdDeserializerProvider().withAdditionalDeserializers(simpleDeserializers));
//     }
// 
//     @Override
//     public Schema deserialize(InputStream inputStream) throws IOException {
//         return objectMapper.readValue(inputStream, Schema.class);
//     }
// 
//     @Override
//     public Schema deserialize(String string) throws IOException {
//         return objectMapper.readValue(string, Schema.class);
//     }
// 
//     @Override
//     public void serialize(Schema schema, OutputStream outputStream) throws IOException {
//         objectMapper.writeValue(outputStream, schema);
//     }
// 
//     @Override
//     public String serialize(Schema schema) throws IOException {
//         return objectMapper.writeValueAsString(schema);
//     }
// 
// }
// 
// Path: src/main/java/com/presidentio/testdatagenerator/parser/SchemaSerializer.java
// public interface SchemaSerializer {
// 
//     Schema deserialize(InputStream inputStream) throws IOException;
// 
//     Schema deserialize(String string) throws IOException;
// 
//     void serialize(Schema schema, OutputStream outputStream) throws IOException;
// 
//     String serialize(Schema schema) throws IOException;
// 
// }


// Path: src/main/java/com/presidentio/testdatagenerator/Starter.java
import com.beust.jcommander.JCommander;
import com.beust.jcommander.Parameter;
import com.beust.jcommander.ParameterException;
import com.presidentio.testdatagenerator.model.*;
import com.presidentio.testdatagenerator.parser.JsonSchemaSerializer;
import com.presidentio.testdatagenerator.parser.SchemaSerializer;
import java.io.FileInputStream;
import java.io.IOException;

/**
 * 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
 * <p>
 * http://www.apache.org/licenses/LICENSE-2.0
 * <p>
 * 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.presidentio.testdatagenerator;



public class Starter {

    @Parameter(names = "-a", description = "async, default true")
    private Boolean async = true;

    @Parameter(names = "-th", description = "thread count, work only when async true, default is processors count")
    private Integer threadCount;

    @Parameter(names = "-s", required = true, description = "Generation schema json file")