private static void registerForward(
     final ActionMapping actionMapping,
     final Forward forward,
     Forwards forwards,
     Mapping mapping,
     String defaultResourcesName) {
   if (forward.useTile() && isSimplePageFile(forward.path())) {
     PartialTileDefinition tileDefinition =
         new PartialTileDefinition(forward, forwards, mapping, defaultResourcesName);
     FenixDefinitionsFactory.registerDefinition(tileDefinition);
     actionMapping.addForwardConfig(
         new ActionForward(
             forward.name(),
             tileDefinition.getName(),
             forward.redirect(),
             forward.contextRelative()));
   } else {
     // The forward is using an existing tile definition
     actionMapping.addForwardConfig(
         new ActionForward(
             forward.name(), forward.path(), forward.redirect(), forward.contextRelative()));
   }
 }
 public PartialTileDefinition(
     Forward forward, Forwards forwards, Mapping mapping, String defaultBundleName) {
   Tile localTile = forward.tileProperties();
   Tile globalTile = forwards.tileProperties();
   path = forward.path();
   extend = getDefinedValue(localTile.extend(), globalTile.extend(), getDefaultValue("extend"));
   title = getDefinedValue(localTile.title(), globalTile.title(), getDefaultValue("title"));
   customBundleName =
       getDefinedValue(localTile.bundle(), globalTile.bundle(), getDefaultValue("bundle"));
   this.defaultBundleName = (defaultBundleName == null) ? mapping.module() : defaultBundleName;
   for (Method tileMethod : tileMethods) {
     TileCustomPropertyName tileCustomProperty =
         tileMethod.getAnnotation(TileCustomPropertyName.class);
     String tileMethodName =
         (tileCustomProperty != null) ? tileCustomProperty.value() : tileMethod.getName();
     String localValue = invokeAnnotationMethod(tileMethod, localTile);
     String globalValue = invokeAnnotationMethod(tileMethod, globalTile);
     attributeValues.put(
         tileMethodName,
         getDefinedValue(localValue, globalValue, (String) tileMethod.getDefaultValue()));
     attributeDefaults.put(tileMethodName, (String) tileMethod.getDefaultValue());
   }
 }