You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2019/10/22 18:31:24 UTC

svn commit: r1868768 - /manifoldcf/trunk/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java

Author: kwright
Date: Tue Oct 22 18:31:24 2019
New Revision: 1868768

URL: http://svn.apache.org/viewvc?rev=1868768&view=rev
Log:
Fix the way attributes are indexed to be compatible with LAPI connector

Modified:
    manifoldcf/trunk/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java

Modified: manifoldcf/trunk/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java
URL: http://svn.apache.org/viewvc/manifoldcf/trunk/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java?rev=1868768&r1=1868767&r2=1868768&view=diff
==============================================================================
--- manifoldcf/trunk/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java (original)
+++ manifoldcf/trunk/connectors/csws/connector/src/main/java/org/apache/manifoldcf/crawler/connectors/csws/CswsConnector.java Tue Oct 22 18:31:24 2019
@@ -3727,6 +3727,7 @@ public class CswsConnector extends org.a
       if (objInfo == null) {
         return false;
       }
+      
       final List<? extends AttributeGroup> attributeGroups = objInfo.getMetadata().getAttributeGroups();
       for (final AttributeGroup attribute : attributeGroups) {
         final int index = attribute.getKey().indexOf(".");
@@ -3737,12 +3738,34 @@ public class CswsConnector extends org.a
         final long attrCatID = new Long(categoryId).longValue();
         if (attrCatID == catID) {
           final List<? extends DataValue> dataValues = attribute.getValues();
-          final String[] valuesToIndex = new String[dataValues.size()];
+
           int i = 0;
           for (final DataValue dataValue : dataValues) {
-            valuesToIndex[i++] = dataValue.getDescription();
+              int j = 0;
+              String[] valuesToIndex1 = null;
+              if (dataValue instanceof StringValue) {
+                  StringValue typedAttr = (StringValue)dataValue;
+                  List<String> valArray = typedAttr.getValues();
+                  if(valArray != null) {
+                      valuesToIndex1 = new String[valArray.size()];
+                      for (final String valueToIndex : valArray) {
+                          valuesToIndex1[j++] = valueToIndex;
+                      }
+                  }
+              } else if (dataValue instanceof DateValue) {
+                  DateValue typedAttr = (DateValue)dataValue;
+                  List<XMLGregorianCalendar> valArray = typedAttr.getValues();
+                  if (valArray != null) {
+                      valuesToIndex1 = new String[valArray.size()];
+                      for (final XMLGregorianCalendar valueToIndex : valArray) {
+                          valuesToIndex1[j++] = valueToIndex.toString();
+                      }
+                  }
+              }
+              if (valuesToIndex1 != null) {
+                  rd.addField(catName + "." + dataValue.getDescription(), valuesToIndex1);
+              }
           }
-          rd.addField(catName + "." + categoryAttributeName, valuesToIndex);
         }
       }
       return true;