1 16 package org.outerj.daisy.navigation; 17 18 import org.outerx.daisy.x10Navigationspec.NavigationLookupResultDocument; 19 import org.outerj.daisy.repository.VariantKey; 20 21 43 public class NavigationLookupResult { 44 private VariantKey variantKey = null; 45 private String lookupAlternativeName; 46 private String navigationPath; 47 private boolean redirect; 48 private boolean notFound; 49 50 private NavigationLookupResult() { 51 } 52 53 public static NavigationLookupResult createMatchResult(VariantKey variantKey, String navigationPath) { 54 NavigationLookupResult lookupResult = new NavigationLookupResult(); 55 lookupResult.variantKey = variantKey; 56 lookupResult.navigationPath = navigationPath; 57 lookupResult.redirect = false; 58 return lookupResult; 59 } 60 61 public static NavigationLookupResult createRedirectResult(String lookupAlternativeName, String navigationPath, VariantKey variantKey) { 62 NavigationLookupResult lookupResult = new NavigationLookupResult(); 63 lookupResult.lookupAlternativeName = lookupAlternativeName; 64 lookupResult.navigationPath = navigationPath; 65 lookupResult.redirect = true; 66 lookupResult.variantKey = variantKey; 67 return lookupResult; 68 } 69 70 public static NavigationLookupResult createNotFoundResult() { 71 NavigationLookupResult lookupResult = new NavigationLookupResult(); 72 lookupResult.notFound = true; 73 return lookupResult; 74 } 75 76 public static NavigationLookupResult createFromXml(NavigationLookupResultDocument.NavigationLookupResult resultXml) { 77 NavigationLookupResult lookupResult = new NavigationLookupResult(); 78 if (resultXml.isSetNotFound()) 79 lookupResult.notFound = resultXml.getNotFound(); 80 if (resultXml.isSetRedirect()) 81 lookupResult.redirect = resultXml.getRedirect(); 82 if (resultXml.isSetDocumentId()) { 83 lookupResult.variantKey = new VariantKey(resultXml.getDocumentId(), resultXml.getBranchId(), resultXml.getLanguageId()); 84 } 85 if (resultXml.isSetPath()) 86 lookupResult.navigationPath = resultXml.getPath(); 87 if (resultXml.isSetLookupAlternativeName()) 88 lookupResult.lookupAlternativeName = resultXml.getLookupAlternativeName(); 89 90 return lookupResult; 91 } 92 93 public VariantKey getVariantKey() { 94 return variantKey; 95 } 96 97 public String getNavigationPath() { 98 return navigationPath; 99 } 100 101 public boolean isRedirect() { 102 return redirect; 103 } 104 105 public boolean isNotFound() { 106 return notFound; 107 } 108 109 public String getLookupAlternativeName() { 110 return lookupAlternativeName; 111 } 112 113 public NavigationLookupResultDocument getXml() { 114 NavigationLookupResultDocument resultDocument = NavigationLookupResultDocument.Factory.newInstance(); 115 NavigationLookupResultDocument.NavigationLookupResult resultXml = resultDocument.addNewNavigationLookupResult(); 116 117 if (notFound) 118 resultXml.setNotFound(true); 119 if (redirect) 120 resultXml.setRedirect(true); 121 if (variantKey != null) { 122 resultXml.setDocumentId(variantKey.getDocumentId()); 123 resultXml.setBranchId(variantKey.getBranchId()); 124 resultXml.setLanguageId(variantKey.getLanguageId()); 125 } 126 if (navigationPath != null) 127 resultXml.setPath(navigationPath); 128 if (lookupAlternativeName != null) 129 resultXml.setLookupAlternativeName(lookupAlternativeName); 130 131 return resultDocument; 132 } 133 } 134 | Popular Tags |