#region Apache License, Version 2.0
//
// 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.
//
#endregion
using System;
using System.IO;
using System.Collections.Generic;
using NMaven.Model;
namespace NMaven.Solution
{
///
/// Provides services for generating .NET project and solution files.
///
[CLSCompliantAttribute(false)]
public interface IProjectGenerator
{
///
/// Generates a .csproj file from the specified maven model.
///
/// the pom model
/// the directory containing the source files
/// the name of the project: usually corresponds to the artifact id
/// references to other projects that this project is dependent upon
///
[CLSCompliantAttribute(false)]
IProjectReference GenerateProjectFor(NMaven.Model.Pom.Model model,
DirectoryInfo sourceFileDirectory,
string projectFileName,
ICollection projectReferences,
DirectoryInfo localRepository);
///
/// Generates a solution file that references the specified projects.
///
/// the solution file
/// csproj references
void GenerateSolutionFor(FileInfo fileInfo, ICollection projectReferences);
///
/// Creates a model from the pom.
///
/// file name of the pom.xml file
/// a model binding of the pom file
///
[CLSCompliantAttribute(false)]
NMaven.Model.Pom.Model CreatePomModelFor(string fileName);
}
}