001package org.apache.maven.settings.building; 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022import org.apache.maven.settings.io.DefaultSettingsReader; 023import org.apache.maven.settings.io.DefaultSettingsWriter; 024import org.apache.maven.settings.io.SettingsReader; 025import org.apache.maven.settings.io.SettingsWriter; 026import org.apache.maven.settings.validation.DefaultSettingsValidator; 027import org.apache.maven.settings.validation.SettingsValidator; 028 029/** 030 * A factory to create settings builder instances when no dependency injection is available. <em>Note:</em> This class 031 * is only meant as a utility for developers that want to employ the settings builder outside of the Maven build system, 032 * Maven plugins should always acquire settings builder instances via dependency injection. Developers might want to 033 * subclass this factory to provide custom implementations for some of the components used by the settings builder. 034 * 035 * @author Benjamin Bentmann 036 */ 037public class DefaultSettingsBuilderFactory 038{ 039 040 protected SettingsReader newSettingsReader() 041 { 042 return new DefaultSettingsReader(); 043 } 044 045 protected SettingsWriter newSettingsWriter() 046 { 047 return new DefaultSettingsWriter(); 048 } 049 050 protected SettingsValidator newSettingsValidator() 051 { 052 return new DefaultSettingsValidator(); 053 } 054 055 /** 056 * Creates a new settings builder instance. 057 * 058 * @return The new settings builder instance, never {@code null}. 059 */ 060 public DefaultSettingsBuilder newInstance() 061 { 062 DefaultSettingsBuilder builder = new DefaultSettingsBuilder(); 063 064 builder.setSettingsReader( newSettingsReader() ); 065 builder.setSettingsWriter( newSettingsWriter() ); 066 builder.setSettingsValidator( newSettingsValidator() ); 067 068 return builder; 069 } 070 071}