Projects >> b2 >>22d127eec92864dbeee1a4c6745a1d651d88cbc3

Chunk
Conflicting content
package org.sourcepit.b2.directory.parser.internal.extensions;

<<<<<<< HEAD
import static java.lang.Character.isWhitespace;
=======
import static com.google.common.base.Preconditions.checkState;
import static org.sourcepit.b2.model.interpolation.internal.module.B2MetadataUtils.addAssemblyClassifier;
import static org.sourcepit.b2.model.interpolation.internal.module.B2MetadataUtils.addAssemblyName;
>>>>>>> 08ecb042245c63941f86f4fa442d6623efd02f0e

import java.io.File;
import java.io.FileFilter;
Solution content
package org.sourcepit.b2.directory.parser.internal.extensions;

import static java.lang.Character.isWhitespace;
import static com.google.common.base.Preconditions.checkState;
import static org.sourcepit.b2.model.interpolation.internal.module.B2MetadataUtils.addAssemblyClassifier;
import static org.sourcepit.b2.model.interpolation.internal.module.B2MetadataUtils.addAssemblyName;

import java.io.File;
import java.io.FileFilter;
File
ProductExtender.java
Developer's decision
Concatenation
Kind of conflict
Import
Chunk
Conflicting content
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Collection;
<<<<<<< HEAD
import java.util.List;
=======
import java.util.HashMap;
import java.util.List;
import java.util.Map;
>>>>>>> 08ecb042245c63941f86f4fa442d6623efd02f0e

import javax.inject.Inject;
import javax.inject.Named;
Solution content
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.HashMap;
import java.util.Map;

import javax.inject.Inject;
import javax.inject.Named;
File
ProductExtender.java
Developer's decision
Combination
Kind of conflict
Import
Chunk
Conflicting content
                  }

                  Document productDoc = XmlUtils.readXml(productFile);
                  Element elem = productDoc.getDocumentElement();

<<<<<<< HEAD
=======
                  final String uid = elem.getAttribute("uid");
                  if (uid.length() == 0)
                  {
                     throw new IllegalStateException("Attribute uid not specified in product file "
                        + productDef.getFile());
                  String version = elem.getAttribute("version");
                  if (version.length() == 0)
                  {
                     throw new IllegalStateException("Attribute version not specified in product file "
                        + productDef.getFile());
                  }

>>>>>>> 08ecb042245c63941f86f4fa442d6623efd02f0e
                  final String id = elem.getAttribute("id");
                  if (id.startsWith(pluginProject.getId() + "."))
                  {
Solution content
                  Document productDoc = XmlUtils.readXml(productFile);
                  Element elem = productDoc.getDocumentElement();

                  final String id = elem.getAttribute("id");
                  if (id.startsWith(pluginProject.getId() + "."))
                  {
File
ProductExtender.java
Developer's decision
Version 1
Kind of conflict
If statement
Method invocation
Variable
Chunk
Conflicting content
      }
   }

<<<<<<< HEAD
   private static String determineProductVersion(Element productXML, final StrictReference productPlugin)
   {
      String version = productXML.getAttribute("version");
      if (version.length() == 0)
      {
         if (productPlugin != null)
         {
            version = productPlugin.getVersion();
         }
         else
         {
            version = null;
         }
      }
      return version;
   }

   private static String determineProductUniqueId(File productFile, Element productXML,
      final StrictReference productPlugin)
   {
      String uid = productXML.getAttribute("uid");
      if (uid.length() == 0)
      {
         if (productPlugin == null)
         {
            throw new IllegalStateException("Attribute uid not specified in product file " + productFile);
         }
         else
         {
            uid = deriveProductUniqueId(productPlugin.getId(), productFile.getName());
         }
      }
      return uid;
   }

   static String deriveProductUniqueId(String productPluginId, String productFileName)
   {
      final String[] nameSegments = normalizeAndSplitProductFileName(productFileName);
      final String[] pluginSegments = productPluginId.split("\\.");

      final StringBuilder sb = new StringBuilder();

      int i = 0;
      int j = 0;

      final String firstNameSegment = nameSegments[0];
      for (; i < pluginSegments.length; i++)
      {
         final String pluginSegment = pluginSegments[i];
         sb.append(pluginSegment);
         sb.append('.');

         if (firstNameSegment.equals(pluginSegment))
         {
            i++;
            j++;
            break;
         }
      }

      for (; i < pluginSegments.length && j < nameSegments.length; i++, j++)
      {
         final String pluginSegment = pluginSegments[i];
         final String nameSegment = nameSegments[j];
         if (pluginSegment.equals(nameSegment))
         {
            sb.append(pluginSegment);
            sb.append('.');
         }
         else
         {
            j = 0;
            break;
         }
      }

      if (i != pluginSegments.length)
      {
         j = 0;
      }

      for (; i < pluginSegments.length; i++)
      {
         sb.append(pluginSegments[i]);
         sb.append('.');
      }

      for (; j < nameSegments.length; j++)
      {
         sb.append(nameSegments[j]);
         sb.append('.');
      }

      sb.append("product");

      return sb.toString();
   }

   private static String[] normalizeAndSplitProductFileName(String productFileName)
   {
      int idx = productFileName.toLowerCase().lastIndexOf('.');
      if (idx > -1)
      {
         productFileName = productFileName.substring(0, idx);
      }

      char[] chars = productFileName.toCharArray();

      final List segments = new ArrayList();
      StringBuilder sb = new StringBuilder();
      for (int i = 0; i < chars.length; i++)
      {
         final char c = chars[i];
         if (c == '-' || c == '.')
         {
            final String segment = sb.toString();
            if (!segment.isEmpty())
            {
               segments.add(segment);
            }
            sb = new StringBuilder();
         }
         else if (isWhitespace(c))
         {
            sb.append('_');
         }
         else
         {
            sb.append(c);
         }
      }

      final String segment = sb.toString();
      if (!segment.isEmpty())
      {
         segments.add(segment);
      }

      return segments.toArray(new String[segments.size()]);
=======
   static void addAssemblyMetadata(List productDefinitions, BasicConverter converter,
      PropertiesSource properties)
   {
      final Map assemblyClassifierToNameMap = createAssemblyClassifierToNameMap(converter, properties);
      for (ProductDefinition productDefinition : productDefinitions)
      {
         final String productFileName = productDefinition.getFile().getName();
         final String assemblyClassifier = getAssemblyClassifier(productFileName);

         final String assemblyName = assemblyClassifierToNameMap.get(assemblyClassifier);
         checkState(assemblyName != null, "Unable to determine assembly for product '%s' with classifier '%s'",
            productFileName, assemblyClassifier);

         addAssemblyName(productDefinition, assemblyName);
         addAssemblyClassifier(productDefinition, assemblyClassifier);
      }
   }

   private static Map createAssemblyClassifierToNameMap(BasicConverter converter,
      PropertiesSource properties)
   {
      final Map assemblyClassifierToNameMap = new HashMap();
      for (String assemblyName : converter.getAssemblyNames(properties))
      {
         assemblyClassifierToNameMap.put(converter.getAssemblyClassifier(properties, assemblyName), assemblyName);
      }
      return assemblyClassifierToNameMap;
   }

   static String getAssemblyClassifier(String productFileName)
   {
      String classifier = productFileName;
      int idx = classifier.lastIndexOf('.');
      if (idx > -1)
      {
         classifier = classifier.substring(0, idx);
      }
      idx = classifier.lastIndexOf('-');
      if (idx > -1)
      {
         classifier = classifier.substring(idx + 1, classifier.length());
      }
      else
      {
         classifier = "";
      }
      return classifier;
>>>>>>> 08ecb042245c63941f86f4fa442d6623efd02f0e
   }

}
Solution content
      }
   }

   private static String determineProductVersion(File productFile, Element productXML,
      final StrictReference productPlugin)
   {
      String version = productXML.getAttribute("version");
      if (version.length() == 0)
      {
         if (productPlugin != null)
         {
            version = productPlugin.getVersion();
         }
         else
         {
            throw new IllegalStateException("Attribute version not specified in product file " + productFile);
         }
      }
      return version;
   }

   private static String determineProductUniqueId(File productFile, Element productXML,
      final StrictReference productPlugin)
   {
      String uid = productXML.getAttribute("uid");
      if (uid.length() == 0)
      {
         if (productPlugin == null)
         {
            throw new IllegalStateException("Attribute uid not specified in product file " + productFile);
         }
         else
         {
            uid = deriveProductUniqueId(productPlugin.getId(), productFile.getName());
         }
      }
      return uid;
   }

   static String deriveProductUniqueId(String productPluginId, String productFileName)
   {
      final String[] nameSegments = normalizeAndSplitProductFileName(productFileName);
      final String[] pluginSegments = productPluginId.split("\\.");

      final StringBuilder sb = new StringBuilder();

      int i = 0;
      int j = 0;

      final String firstNameSegment = nameSegments[0];
      for (; i < pluginSegments.length; i++)
      {
         final String pluginSegment = pluginSegments[i];
         sb.append(pluginSegment);
         sb.append('.');

         if (firstNameSegment.equals(pluginSegment))
         {
            i++;
            j++;
            break;
         }
      }

      for (; i < pluginSegments.length && j < nameSegments.length; i++, j++)
      {
         final String pluginSegment = pluginSegments[i];
         final String nameSegment = nameSegments[j];
         if (pluginSegment.equals(nameSegment))
         {
            sb.append(pluginSegment);
            sb.append('.');
         }
         else
         {
            j = 0;
            break;
         }
      }

      if (i != pluginSegments.length)
      {
         j = 0;
      }

      for (; i < pluginSegments.length; i++)
      {
         sb.append(pluginSegments[i]);
         sb.append('.');
      }

      for (; j < nameSegments.length; j++)
      {
         sb.append(nameSegments[j]);
         sb.append('.');
      }

      sb.append("product");

      return sb.toString();
   }

   private static String[] normalizeAndSplitProductFileName(String productFileName)
   {
      int idx = productFileName.toLowerCase().lastIndexOf('.');
      if (idx > -1)
      {
         productFileName = productFileName.substring(0, idx);
      }

      char[] chars = productFileName.toCharArray();

      final List segments = new ArrayList();
      StringBuilder sb = new StringBuilder();
      for (int i = 0; i < chars.length; i++)
      {
         final char c = chars[i];
         if (c == '-' || c == '.')
         {
            final String segment = sb.toString();
            if (!segment.isEmpty())
            {
               segments.add(segment);
            }
            sb = new StringBuilder();
         }
         else if (isWhitespace(c))
         {
            sb.append('_');
         }
         else
         {
            sb.append(c);
         }
      }

      final String segment = sb.toString();
      if (!segment.isEmpty())
      {
         segments.add(segment);
      }

      return segments.toArray(new String[segments.size()]);
   }

   static void addAssemblyMetadata(List productDefinitions, BasicConverter converter,
      PropertiesSource properties)
   {
      final Map assemblyClassifierToNameMap = createAssemblyClassifierToNameMap(converter, properties);
      for (ProductDefinition productDefinition : productDefinitions)
      {
         final String productFileName = productDefinition.getFile().getName();
         final String assemblyClassifier = getAssemblyClassifier(productFileName);

         final String assemblyName = assemblyClassifierToNameMap.get(assemblyClassifier);
         checkState(assemblyName != null, "Unable to determine assembly for product '%s' with classifier '%s'",
            productFileName, assemblyClassifier);

         addAssemblyName(productDefinition, assemblyName);
         addAssemblyClassifier(productDefinition, assemblyClassifier);
      }
   }

   private static Map createAssemblyClassifierToNameMap(BasicConverter converter,
      PropertiesSource properties)
   {
      final Map assemblyClassifierToNameMap = new HashMap();
      for (String assemblyName : converter.getAssemblyNames(properties))
      {
         assemblyClassifierToNameMap.put(converter.getAssemblyClassifier(properties, assemblyName), assemblyName);
      }
      return assemblyClassifierToNameMap;
   }

   static String getAssemblyClassifier(String productFileName)
   {
      String classifier = productFileName;
      int idx = classifier.lastIndexOf('.');
      if (idx > -1)
      {
         classifier = classifier.substring(0, idx);
      }
      idx = classifier.lastIndexOf('-');
      if (idx > -1)
      {
         classifier = classifier.substring(idx + 1, classifier.length());
      }
      else
      {
         classifier = "";
      }
      return classifier;
   }

}
File
ProductExtender.java
Developer's decision
Manual
Kind of conflict
For statement
If statement
Method declaration
Method invocation
Method signature
Return statement
Variable