Author: wkeil
Date: Sat Jun 18 23:03:38 2016
New Revision: 1749105

URL: http://svn.apache.org/viewvc?rev=1749105&view=rev
Log:
DMAP-166: New device: Sony Xperia E1 

Task-Url: https://issues.apache.org/jira/browse/DMAP-166

Added:
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java
Modified:
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Device.java
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/DeviceType.java
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Pattern.java
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/PatternSet.java
    
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/UserAgent.java

Added: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java?rev=1749105&view=auto
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java
 (added)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java
 Sat Jun 18 23:03:38 2016
@@ -0,0 +1,137 @@
+/*
+ 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.
+ */
+package org.apache.devicemap;
+
+import static org.apache.devicemap.data.UserAgent.ANDROID;
+import static org.apache.devicemap.data.UserAgent.WINDOWS;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Logger;
+
+import org.apache.devicemap.data.DeviceType;
+import org.apache.devicemap.data.UserAgent;
+
+/**
+ * @author Werner Keil
+ * @version 0.1
+ */
+abstract class DeviceFixer {
+       private static final Logger LOG = Logger.getLogger(DeviceFixer.class
+                       .getName());
+
+       private static final String DEVICE_OS = "device_os";
+       private static final String DEVICE_OS_VERSION = "device_os_version";
+//     private static final String VENDOR = "vendor";
+       private static final String LIKE_MAC = "like Mac OS X";
+
+       static final DeviceType fixFromUserAgent(final DeviceType device,
+                       final UserAgent userAgent) {
+               String pattern = userAgent.getPatternElementsInside();
+               if (pattern != null && pattern.contains(";")) {
+                       Map<String, String> attributes;
+                       if (device.isLocked()) {
+                               // clone map
+                               attributes = new HashMap<String, String>();
+
+                               attributes.putAll(device.getAttributes());
+                       } else {
+                               attributes = device.getAttributes();
+                       }
+                       String[] parts = pattern.split(";");
+
+                       for (String part : parts) {
+                               if (part != null) {
+                                       if (part.trim().startsWith(ANDROID)) {
+                                               final String versionPart = 
part.trim()
+                                                               
.substring(ANDROID.length()).trim();
+                                               final String versionExisting = 
attributes
+                                                               
.get(DEVICE_OS_VERSION);
+                                               if 
(!versionPart.equals(versionExisting)) {
+                                                       LOG.fine("Fixing '" + 
versionExisting + "' to '"
+                                                                       + 
versionPart + "'");
+                                                       
attributes.put(DEVICE_OS_VERSION, versionPart);
+                                                       
device.setAttributes(attributes);
+                                               }
+                                       }
+                                       if (part.trim().endsWith(LIKE_MAC)) {
+                                               final String versionCandidate = 
part
+                                                               
.trim().substring(0, 
+                                                               
part.trim().length() - LIKE_MAC.length()).trim();
+                                               if 
(versionCandidate.contains("OS")) {
+                                                       final String 
versionPart = versionCandidate
+                                                                       
.substring(
+                                                                               
        versionCandidate.indexOf("OS") + 2)
+                                                                       
.trim().replaceAll("_", ".");
+                                                       final String 
versionExisting = attributes
+                                                                       
.get(DEVICE_OS_VERSION);
+                                                       if 
(!versionPart.equals(versionExisting)) {
+                                                               
LOG.fine("Fixing '" + versionExisting
+                                                                               
+ "' to '" + versionPart + "'");
+                                                               
attributes.put(DEVICE_OS_VERSION, versionPart);
+                                                               
device.setAttributes(attributes);
+                                                       }
+                                               }
+                                       }
+                                       if (part.trim().startsWith(WINDOWS)) {
+                                               final String versionCandidate = 
part.trim();
+                                               DeviceHints.WindowsVersion 
version = DeviceHints.WindowsVersion
+                                                               
.ofToken(versionCandidate);
+                                               if (version != null) {
+                                                       final String osExisting 
= attributes.get(DEVICE_OS);
+                                                       LOG.fine("Fixing '" + 
osExisting + "' to '"
+                                                                       + 
version.getDescription() + "'");
+                                                       
attributes.put(DEVICE_OS, version.getDescription());
+                                                       final String 
versionExisting = attributes
+                                                                       
.get(DEVICE_OS_VERSION);
+                                                       if 
(!version.getVersion().equals(versionExisting)) {
+                                                               
LOG.fine("Fixing '" + versionExisting
+                                                                               
+ "' to '" + version.getVersion() + "'");
+                                                               
attributes.put(DEVICE_OS_VERSION,
+                                                                               
version.getVersion());
+                                                       }
+                                                       // final String 
vendorExisting =
+                                                       // 
attributes.get(VENDOR);
+                                                       // if (vendorExisting 
== null ||
+                                                       // 
vendorExisting.length()==0 ||
+                                                       // 
"-".equals(vendorExisting) ) {
+                                                       // LOG.finer("Desktop" +
+                                                       // 
attributes.get("is_desktop"));
+                                                       // if
+                                                       // 
(Boolean.parseBoolean(attributes.get("is_desktop")))
+                                                       // {
+                                                       // 
attributes.put(VENDOR, "Microsoft");
+                                                       // }
+                                                       // }
+                                                       
device.setAttributes(attributes);
+                                               }
+                                       } /*
+                                        * else { String versionCandidate = 
part.trim();
+                                        * 
System.out.println(versionCandidate); }
+                                        */
+                               }
+                       }
+               }
+               
+               
+               // logger.info("Device: " + device.getId() + " - " +
+               // device.getPropertiesMap());
+               return device;
+       }
+}

Modified: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java?rev=1749105&r1=1749104&r2=1749105&view=diff
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java
 (original)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java
 Sat Jun 18 23:03:38 2016
@@ -18,6 +18,10 @@
  */
 package org.apache.devicemap;
 
+/**
+ * @author Werner Keil
+ * @version 0.2
+ */
 abstract class DeviceHints {
        static enum WindowsVersion {
                WIN_81("Windows NT 6.3" ,"Windows 8.1", "8.1"),

Modified: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java?rev=1749105&r1=1749104&r2=1749105&view=diff
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
 (original)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
 Sat Jun 18 23:03:38 2016
@@ -18,8 +18,7 @@
  */
 package org.apache.devicemap;
 
-import static org.apache.devicemap.data.UserAgent.ANDROID;
-import static org.apache.devicemap.data.UserAgent.WINDOWS;
+import static org.apache.devicemap.DeviceFixer.fixFromUserAgent;
 
 import java.io.IOException;
 import java.util.*;
@@ -35,245 +34,187 @@ import org.apache.devicemap.loader.Loade
 
 /**
  * @author Werner Keil
- * @version 1.0.11
+ * @version 1.0.12
  */
 public class DeviceMapClient {
-    private static final Logger LOG = 
Logger.getLogger(DeviceMapClient.class.getName());
-    private static final java.util.regex.Pattern TEXT_SPLIT_PATTERN = 
java.util.regex.Pattern.compile(" |-|_|/|\\\\|\\[|\\]|\\(|\\)|;");
+       private static final Logger LOG = Logger.getLogger(DeviceMapClient.class
+                       .getName());
+       private static final java.util.regex.Pattern TEXT_SPLIT_PATTERN = 
java.util.regex.Pattern
+                       .compile(" |-|_|/|\\\\|\\[|\\]|\\(|\\)|;");
+
+       private static long initCount = 0;
+
+       // indexes
+       private Map<String, DeviceType> devices;
+       private Map<String, List<DeviceType>> patterns;
+
+       private final Device unknown;
+
+       public DeviceMapClient() {
+               devices = null;
+               patterns = null;
+               Map<String, String> uAttributes = new HashMap<String, String>();
+               uAttributes.put("id", Device.UNKNOWN_ID);
+               uAttributes = Collections.unmodifiableMap(uAttributes);
+               unknown = new Device(Device.UNKNOWN_ID, uAttributes);
+       }
+
+       public void initDeviceData(LoaderOption option) throws IOException {
+               initDeviceData(option, null);
+       }
+
+       public synchronized void initDeviceData(LoaderOption option, String 
path)
+                       throws IOException {
+               devices = LoaderFactory.getLoader(option, path).getData();
+               initCount++;
+
+               if (initCount % 1000 == 0) {
+                       LOG.log(Level.WARNING,
+                                       "Possible device data 
over-initialization detected");
+               }
+
+               if (devices == null) {
+                       patterns = null;
+                       return;
+               }
+               createIndex();
+       }
 
-    private static long initCount = 0;
+       private void createIndex() {
+               patterns = new HashMap<String, List<DeviceType>>(8000);
 
-    //indexes
-    private Map<String, DeviceType> devices;
-    private Map<String, List<DeviceType>> patterns;
-
-    private final Device unknown;
-
-    public DeviceMapClient() {
-        devices = null;
-        patterns = null;
-        Map<String, String> uAttributes = new HashMap<String, String>();
-        uAttributes.put("id", Device.UNKNOWN_ID);
-        uAttributes = Collections.unmodifiableMap(uAttributes);
-        unknown = new Device(Device.UNKNOWN_ID, uAttributes);
-    }
-
-    public void initDeviceData(LoaderOption option) throws IOException {
-        initDeviceData(option, null);
-    }
-
-    public synchronized void initDeviceData(LoaderOption option, String path) 
throws IOException {
-        devices = LoaderFactory.getLoader(option, path).getData();
-        initCount++;
-
-        if (initCount % 1000 == 0) {
-            LOG.log(Level.WARNING, "Possible device data over-initialization 
detected");
-        }
-
-        if (devices == null) {
-            patterns = null;
-            return;
-        }
-        createIndex();
-    }
-
-    private void createIndex() {
-        patterns = new HashMap<String, List<DeviceType>>(8000);
-
-        for (DeviceType device : devices.values()) {
-            for (Pattern pattern : device.getPatternSet().getPatterns()) {
-                for (int i = 0; i < pattern.getPatternParts().size(); i++) {
-                    String part = pattern.getPatternParts().get(i);
-
-                    //duplicate
-                    if (patterns.get(part) != null) {
-                        if (i == (pattern.getPatternParts().size() - 1) && 
!patterns.get(part).contains(device)) {
-                            patterns.get(part).add(device);
-                        }
-                    } else {
-                        List<DeviceType> single = new ArrayList<DeviceType>();
-                        single.add(device);
-                        patterns.put(part, single);
-                    }
-                }
-            }
-        }
-    }
-
-    public Map<String, String> classify(String text) {
-        if (devices == null) {
-            throw new RuntimeException("Uninitialized device index");
-        }
-
-        if (text == null) {
-            return null;
-        }
-
-        Set<String> hitPatterns = new HashSet<String>();
-        Set<DeviceType> hitDevices = new HashSet<DeviceType>();
-        DeviceType winner = null;
-        Pattern winnerPattern = null;
-        LOG.log(Level.FINE, "classify: ''{0}''", text);
-        List<String> parts = split(text);
-
-        //generate ngrams upto size 4
-        for (int i = 0; i < parts.size(); i++) {
-            String pattern = "";
-            for (int j = 0; j < 4 && (j + i) < parts.size(); j++) {
-                pattern += parts.get(i + j);
-                List<DeviceType> dlist = patterns.get(pattern);
-                if (dlist != null) {
-                    hitPatterns.add(pattern);
-                    hitDevices.addAll(dlist);
-                    for (DeviceType device : dlist) {
-                        LOG.log(Level.FINER, "Hit found: ''{0}'' => id: 
''{1}'' {2}", new Object[]{pattern, device.getId(), device.getPatternSet()});
-                    }
-                }
-            }
-        }
-
-        //look for the strongest hit
-        for (DeviceType device : hitDevices) {
-            Pattern pattern = device.getPatternSet().isValid(hitPatterns);
-            if (pattern == null) {
-                continue;
-            }
-
-            LOG.log(Level.FINER, "Hit candidate: ''{0}'' => ({1},{2})", new 
Object[]{device.getId(), pattern.getType(), pattern.getRank()});
-
-            if (winnerPattern == null || pattern.getRank() > 
winnerPattern.getRank()) {
-                winner = device;
-                winnerPattern = pattern;
-            }
-        }
-
-        if (winner != null) {
-            LOG.log(Level.FINE, "Result: {0}", winner);
-            
-            UserAgent userAgent = UserAgent.of(text);
-            LOG.log(Level.FINE, "User Agent: {0}", userAgent);
-            //fixFromUserAgent(winner, userAgent);
-            return fixFromUserAgent(winner, userAgent).getAttributes();
-        } else {
-            return null;
-        }
-    }
-
-    private static final String DEVICE_OS = "device_os";
-    private static final String DEVICE_OS_VERSION = "device_os_version";
-    private static final String VENDOR = "vendor";
-    private static final String LIKE_MAC = "like Mac OS X";
-    
-    private DeviceType fixFromUserAgent(final DeviceType device, final 
UserAgent userAgent) {
-               String pattern = userAgent.getPatternElementsInside();
-               if (pattern != null && pattern.contains(";")) {
-               Map<String, String> attributes;
-               if (device.isLocked()) {
-                       // clone map
-                          attributes = new HashMap<String, String>();
-               
-                          attributes.putAll(device.getAttributes());
-               } else {
-                       attributes = device.getAttributes();
-               }
-                       String[] parts = pattern.split(";");
-               
-                       for (String part : parts) {
-                               if (part != null) {
-                                       if (part.trim().startsWith(ANDROID)) {
-                                               final String versionPart = 
part.trim().substring(ANDROID.length()).trim();
-                                               final String versionExisting = 
attributes.get(DEVICE_OS_VERSION);
-                                               if 
(!versionPart.equals(versionExisting)) {
-                                                       LOG.fine("Fixing '" + 
versionExisting +"' to '" + versionPart + "'" );
-                                                       
attributes.put(DEVICE_OS_VERSION, versionPart);
-                                                       
device.setAttributes(attributes);
+               for (DeviceType device : devices.values()) {
+                       for (Pattern pattern : 
device.getPatternSet().getPatterns()) {
+                               for (int i = 0; i < 
pattern.getPatternParts().size(); i++) {
+                                       String part = 
pattern.getPatternParts().get(i);
+
+                                       // duplicate
+                                       if (patterns.get(part) != null) {
+                                               if (i == 
(pattern.getPatternParts().size() - 1)
+                                                               && 
!patterns.get(part).contains(device)) {
+                                                       
patterns.get(part).add(device);
                                                }
+                                       } else {
+                                               List<DeviceType> single = new 
ArrayList<DeviceType>();
+                                               single.add(device);
+                                               patterns.put(part, single);
                                        }
-                                       if (part.trim().endsWith(LIKE_MAC)) {
-                                               final String versionCandidate = 
part.trim().substring(0, part.trim().length() - LIKE_MAC.length()).trim();
-                                               if 
(versionCandidate.contains("OS")) {
-                                                       final String 
versionPart = 
versionCandidate.substring(versionCandidate.indexOf("OS")+2).trim().replaceAll("_",
 ".");
-                                                       final String 
versionExisting = attributes.get(DEVICE_OS_VERSION);
-                                                       if 
(!versionPart.equals(versionExisting)) {
-                                                               
LOG.fine("Fixing '" + versionExisting +"' to '" + versionPart + "'" );
-                                                               
attributes.put(DEVICE_OS_VERSION, versionPart);
-                                                               
device.setAttributes(attributes);
-                                                       }
-                                               }
+                               }
+                       }
+               }
+       }
+
+       public Map<String, String> classify(String text) {
+               if (devices == null) {
+                       throw new RuntimeException("Uninitialized device 
index");
+               }
+
+               if (text == null) {
+                       return null;
+               }
+
+               Set<String> hitPatterns = new HashSet<String>();
+               Set<DeviceType> hitDevices = new HashSet<DeviceType>();
+               DeviceType winner = null;
+               Pattern winnerPattern = null;
+               LOG.log(Level.FINE, "classify: ''{0}''", text);
+               List<String> parts = split(text);
+
+               // generate ngrams upto size 4
+               for (int i = 0; i < parts.size(); i++) {
+                       String pattern = "";
+                       for (int j = 0; j < 4 && (j + i) < parts.size(); j++) {
+                               pattern += parts.get(i + j);
+                               List<DeviceType> dlist = patterns.get(pattern);
+                               if (dlist != null) {
+                                       hitPatterns.add(pattern);
+                                       hitDevices.addAll(dlist);
+                                       for (DeviceType device : dlist) {
+                                               LOG.log(Level.FINER,
+                                                               "Hit found: 
''{0}'' => id: ''{1}'' {2}",
+                                                               new Object[] { 
pattern, device.getId(),
+                                                                               
device.getPatternSet() });
                                        }
-                                       if (part.trim().startsWith(WINDOWS)) {
-                                               final String versionCandidate = 
part.trim();
-                                               DeviceHints.WindowsVersion 
version = DeviceHints.WindowsVersion.ofToken(versionCandidate);
-                                               if (version != null) {
-                                                       final String osExisting 
= attributes.get(DEVICE_OS);
-                                                       LOG.fine("Fixing '" + 
osExisting +"' to '" + version.getDescription() + "'" );
-                                                       
attributes.put(DEVICE_OS, version.getDescription());
-                                                       final String 
versionExisting = attributes.get(DEVICE_OS_VERSION);
-                                                       if 
(!version.getVersion().equals(versionExisting)) {
-                                                               
LOG.fine("Fixing '" + versionExisting +"' to '" + version.getVersion() + "'" );
-                                                               
attributes.put(DEVICE_OS_VERSION, version.getVersion());
-                                                       }
-//                                                     final String 
vendorExisting = attributes.get(VENDOR);
-//                                                     if (vendorExisting == 
null || vendorExisting.length()==0 || "-".equals(vendorExisting) ) {
-//                                                             
LOG.finer("Desktop" + attributes.get("is_desktop"));
-//                                                             if 
(Boolean.parseBoolean(attributes.get("is_desktop"))) {
-//                                                                     
attributes.put(VENDOR, "Microsoft");
-//                                                             }
-//                                                     }
-                                                       
device.setAttributes(attributes);
-                                               }
-                                       } /* else {
-                                               String versionCandidate = 
part.trim();
-                                               
System.out.println(versionCandidate);
-                                       } */
                                }
                        }
                }
-//     logger.info("Device: " + device.getId() + " - " + 
device.getPropertiesMap());
-       return device;
-    }
-    
-    private static List<String> split(String text) {
-        String[] parts = TEXT_SPLIT_PATTERN.split(text);
-        List<String> nonemptyParts = new ArrayList<String>();
-        for (String part : parts) {
-            String normalizedPart = Pattern.normalize(part);
-            if (normalizedPart != null && !normalizedPart.isEmpty())
-                nonemptyParts.add(normalizedPart);
-        }
-        return nonemptyParts;
-    }
-
-    public Device classifyDevice(String text) {
-        Map<String, String> m = classify(text);
-        if (m == null) {
-            return unknown;
-        }
-        return new Device(m.get("id"), m);
-    }
-
-    public int getDeviceCount() {
-        if (devices == null) {
-            return -1;
-        }
-        return devices.size();
-    }
-
-    public int getPatternCount() {
-        if (patterns == null) {
-            return -1;
-        }
-        return patterns.size();
-    }
-
-    public long getNodeCount() {
-        if (patterns == null) {
-            return -1;
-        }
-        long count = 0;
-        for (List<DeviceType> pDevices : patterns.values()) {
-            count += pDevices.size();
-        }
-        return count;
-    }
+
+               // look for the strongest hit
+               for (DeviceType device : hitDevices) {
+                       Pattern pattern = 
device.getPatternSet().isValid(hitPatterns);
+                       if (pattern == null) {
+                               continue;
+                       }
+
+                       LOG.log(Level.FINER,
+                                       "Hit candidate: ''{0}'' => ({1},{2})",
+                                       new Object[] { device.getId(), 
pattern.getType(),
+                                                       pattern.getRank() });
+
+                       if (winnerPattern == null
+                                       || pattern.getRank() > 
winnerPattern.getRank()) {
+                               winner = device;
+                               winnerPattern = pattern;
+                       }
+               }
+
+               if (winner != null) {
+                       LOG.log(Level.FINE, "Result: {0}", winner);
+
+                       UserAgent userAgent = UserAgent.of(text);
+                       LOG.log(Level.FINE, "User Agent: {0}", userAgent);
+                       // fixFromUserAgent(winner, userAgent);
+                       return fixFromUserAgent(winner, 
userAgent).getAttributes();
+               } else {
+                       return null;
+               }
+       }
+
+       private static List<String> split(String text) {
+               String[] parts = TEXT_SPLIT_PATTERN.split(text);
+               List<String> nonemptyParts = new ArrayList<String>();
+               for (String part : parts) {
+                       String normalizedPart = Pattern.normalize(part);
+                       if (normalizedPart != null && !normalizedPart.isEmpty())
+                               nonemptyParts.add(normalizedPart);
+               }
+               return nonemptyParts;
+       }
+
+       public Device classifyDevice(String text) {
+               Map<String, String> m = classify(text);
+               if (m == null) {
+                       return unknown;
+               }
+               return new Device(m.get("id"), m);
+       }
+
+       public int getDeviceCount() {
+               if (devices == null) {
+                       return -1;
+               }
+               return devices.size();
+       }
+
+       public int getPatternCount() {
+               if (patterns == null) {
+                       return -1;
+               }
+               return patterns.size();
+       }
+
+       public long getNodeCount() {
+               if (patterns == null) {
+                       return -1;
+               }
+               long count = 0;
+               for (List<DeviceType> pDevices : patterns.values()) {
+                       count += pDevices.size();
+               }
+               return count;
+       }
+
+       Map<String, DeviceType> getDevices() {
+               return devices;
+       }
 }

Modified: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Device.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Device.java?rev=1749105&r1=1749104&r2=1749105&view=diff
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Device.java
 (original)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Device.java
 Sat Jun 18 23:03:38 2016
@@ -21,12 +21,15 @@ package org.apache.devicemap.data;
 import java.util.Map;
 import org.apache.devicemap.loader.parser.JsonParser;
 
+/**
+ * @author Reza
+ * @author Werner Keil
+ * @version 1.1
+ */
 public class Device {
-    
     public static final String UNKNOWN_ID = "unknown";
-    
-    private final String id;
 
+    private final String id;
     private final Map<String, String> attributes;
     
     public Device(String id, Map<String, String> attributes) {

Modified: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/DeviceType.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/DeviceType.java?rev=1749105&r1=1749104&r2=1749105&view=diff
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/DeviceType.java
 (original)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/DeviceType.java
 Sat Jun 18 23:03:38 2016
@@ -22,16 +22,16 @@ import java.util.Collections;
 import java.util.Map;
 import org.apache.devicemap.loader.parser.JsonParser;
 
+/**
+ * @author Werner Keil
+ * @version 1.1
+ */
 public class DeviceType {
 
     private String id;
-
     private String parentId;
-
     private final PatternSet pattern;
-
     private Map<String, String> attributes;
-
     private boolean locked;
     
     public DeviceType() {

Modified: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Pattern.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Pattern.java?rev=1749105&r1=1749104&r2=1749105&view=diff
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Pattern.java
 (original)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/Pattern.java
 Sat Jun 18 23:03:38 2016
@@ -23,14 +23,14 @@ import java.util.List;
 import java.util.Set;
 import org.apache.devicemap.loader.parser.JsonParser;
 
+/**
+ * @author Werner Keil
+ * @version 1.1
+ */
 public class Pattern {
-
     private final List<String> pattern;
-
     private final String type;
-    
     private final int rank;
-    
     private final int boost;
 
     public Pattern(String pattern, String type, int boost) {
@@ -70,7 +70,6 @@ public class Pattern {
         for (String part : pattern) {
             r += part.length();
         }
-        
         return r;
     }
     
@@ -104,10 +103,8 @@ public class Pattern {
         }
 
         p = p.toLowerCase().trim();
-
         p = p.replaceAll("\\[bb\\]", "b");
-
-        StringBuilder ret = new StringBuilder();
+        final StringBuilder ret = new StringBuilder();
 
         for (int i = 0; i < p.length(); i++) {
             Character c = p.charAt(i);

Modified: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/PatternSet.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/PatternSet.java?rev=1749105&r1=1749104&r2=1749105&view=diff
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/PatternSet.java
 (original)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/PatternSet.java
 Sat Jun 18 23:03:38 2016
@@ -23,8 +23,11 @@ import java.util.List;
 import java.util.Set;
 import org.apache.devicemap.loader.parser.JsonParser;
 
+/**
+ * @author Werner Keil
+ * @version 1.1
+ */
 public class PatternSet {
-
     private final List<Pattern> patterns;
 
     public PatternSet() {

Modified: 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/UserAgent.java
URL: 
http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/UserAgent.java?rev=1749105&r1=1749104&r2=1749105&view=diff
==============================================================================
--- 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/UserAgent.java
 (original)
+++ 
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/data/UserAgent.java
 Sat Jun 18 23:03:38 2016
@@ -21,6 +21,10 @@ package org.apache.devicemap.data;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+/**
+ * @author Werner Keil
+ * @version 0.3
+ */
 public class UserAgent {
        public static final String ANDROID = "Android";
        public static final String WINDOWS = "Windows";
@@ -35,7 +39,7 @@ public class UserAgent {
        Pattern.compile(MOZILLA_AND_OPERA_PATTERN);
     private static Pattern versionPatternCompiled =
        Pattern.compile(".*Version/(\\d+.\\d+).*");
-    private String completeUserAgent;
+    private final String completeUserAgent;
     private boolean mozillaPattern;
     private boolean operaPattern;
     private String mozillaVersion;
@@ -54,7 +58,7 @@ public class UserAgent {
         }
         completeUserAgent = userAgent;
 
-        Matcher result = mozillaPatternCompiled.matcher(userAgent);
+        final Matcher result = mozillaPatternCompiled.matcher(userAgent);
 
         if (result.matches()) {
             patternElements = new String[]{
@@ -155,7 +159,7 @@ public class UserAgent {
         return containsSymbian;
     }
 
-    public boolean containsWindowsPhone() {
+    public boolean containsWindows() {
         return containsWindowsPhone;
     }
 


Reply via email to