From 0ad6047ce9518a68af5b103f8cb4a55e1565d7f7 Mon Sep 17 00:00:00 2001 From: Jesse Wilson Date: Mon, 14 Sep 2009 11:23:39 -0700 Subject: First cut at a tool to perform automated syncs from Harmony to Dalvik. Much of the work of the tool is managing three versions of our code: - the current Harmony code - the current Dalvik code - the common ancestor, an older version of Harmony The tool calls out to the command line to perform the actual filesystem work. Eventually I'd like to support all of our modules, and also gathering diffs to send upstream to Harmony. --- tools/integrate/Module.java | 67 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 tools/integrate/Module.java (limited to 'tools/integrate/Module.java') diff --git a/tools/integrate/Module.java b/tools/integrate/Module.java new file mode 100644 index 0000000..5cb7035 --- /dev/null +++ b/tools/integrate/Module.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * 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 + * + * 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. + */ + +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * A logical unit of code shared between Apache Harmony and Dalvik. + */ +class Module { + + private final String svnBaseUrl; + private final String path; + private final Set mappedDirectories; + + public String getSvnBaseUrl() { + return svnBaseUrl; + } + + public String path() { + return path; + } + + public Set getMappedDirectories() { + return mappedDirectories; + } + + private Module(Builder builder) { + this.svnBaseUrl = builder.svnBaseUrl; + this.path = builder.path; + this.mappedDirectories = new LinkedHashSet(builder.mappedDirectories); + } + + public static class Builder { + private final String svnBaseUrl; + private final String path; + private final Set mappedDirectories + = new LinkedHashSet(); + + public Builder(String svnBaseUrl, String path) { + this.svnBaseUrl = svnBaseUrl; + this.path = path; + } + + public Builder mapDirectory(String svnPath, String gitPath) { + mappedDirectories.add(new MappedDirectory(svnPath, gitPath)); + return this; + } + + public Module build() { + return new Module(this); + } + } +} -- cgit v1.1