Skip to content

Commit 614ff9e

Browse files
dmealingclaude
andcommitted
FIX: Resolve Javadoc generation errors for Maven Central publishing
- Fixed critical heading structure issues by replacing <h3> tags with <strong> tags - Added missing @param and @return tags to ArrayField, MetaField, MetaValidator, ArrayValidator - Fixed HTML encoding issues by replacing <?> with &lt;?&gt; in comments - Added table caption to MetaDataLoader documentation - Removed invalid cross-module reference to FileMetaDataLoader - Resolved all blocking Javadoc errors that prevented Maven publishing build All 19 modules now build successfully with Javadoc generation working for release profile. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent b587b99 commit 614ff9e

15 files changed

Lines changed: 58 additions & 29 deletions

metadata/src/main/java/com/metaobjects/MetaData.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
* are loaded once during application startup and optimized for heavy read access throughout
3939
* the application lifetime.</p>
4040
*
41-
* <h3>Architecture Pattern</h3>
41+
* <strong>Architecture Pattern:</strong>
4242
* <ul>
4343
* <li><strong>Load Once</strong>: Like ClassLoader, expensive startup for permanent benefit</li>
4444
* <li><strong>Read Many</strong>: Optimized for thousands of concurrent read operations</li>
@@ -47,7 +47,7 @@
4747
* <li><strong>Memory Efficient</strong>: Smart caching balances performance with memory cleanup</li>
4848
* </ul>
4949
*
50-
* <h3>Usage Examples</h3>
50+
* <strong>Usage Examples:</strong>
5151
* <pre>{@code
5252
* // Loading Phase - Happens once at startup
5353
* MetaDataLoader loader = new SimpleLoader("myLoader");
@@ -59,7 +59,7 @@
5959
* MetaField field = userMeta.getMetaField("email"); // Cached access
6060
* }</pre>
6161
*
62-
* <h3>Performance Characteristics</h3>
62+
* <strong>Performance Characteristics:</strong>
6363
* <ul>
6464
* <li><strong>Loading Phase</strong>: 100ms-1s (acceptable one-time cost)</li>
6565
* <li><strong>Runtime Reads</strong>: 1-10μs (cached, immutable access)</li>

metadata/src/main/java/com/metaobjects/attr/AttributeTypesMetaDataProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* <p>This provider registers all the concrete attribute types that extend attr.base.
1212
* It calls the registerTypes() methods on each concrete attribute class to ensure proper registration.</p>
1313
*
14-
* <h3>Attribute Types Registered:</h3>
14+
* <strong>Attribute Types Registered:</strong>
1515
* <ul>
1616
* <li><strong>attr.string:</strong> String attributes</li>
1717
* <li><strong>attr.int:</strong> Integer attributes</li>
@@ -23,7 +23,7 @@
2323
* <li><strong>attr.properties:</strong> Properties attributes</li>
2424
* </ul>
2525
*
26-
* <h3>Priority:</h3>
26+
* <strong>Priority:</strong>
2727
* <p>Priority 15 - Runs after field types (10) but before validators (20).
2828
* This ensures attr.base is available before concrete attribute types are registered.</p>
2929
*

metadata/src/main/java/com/metaobjects/core/CoreTypeMetaDataProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@
1313
* all other metadata types inherit from. It must be loaded before any other providers
1414
* that define types inheriting from metadata.base.</p>
1515
*
16-
* <h3>Base Types Registered:</h3>
16+
* <strong>Base Types Registered:</strong>:
1717
* <ul>
1818
* <li><strong>metadata.base:</strong> Root metadata type that all others inherit from</li>
1919
* </ul>
2020
*
21-
* <h3>Dependencies:</h3>
21+
* <strong>Dependencies:</strong>:
2222
* <p>No dependencies - This provider registers the foundational base type that
2323
* all other types depend on.</p>
2424
*

metadata/src/main/java/com/metaobjects/field/ArrayField.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,16 @@
1212
@SuppressWarnings("serial")
1313
public abstract class ArrayField<A,T extends List> extends MetaField<T> {
1414

15+
/** Attribute name for array item name configuration */
1516
public final static String ATTR_ITEM_NAME = "itemName";
1617

18+
/**
19+
* Creates an ArrayField with the specified subtype, name and data type
20+
* @param subType the field subtype
21+
* @param name the field name
22+
* @param dataType the data type, must be an array type
23+
* @throws IllegalStateException if dataType is not an array type
24+
*/
1725
public ArrayField(String subType, String name, DataTypes dataType ) {
1826
super( subType, name, dataType );
1927
if ( !dataType.isArray() )
@@ -59,7 +67,10 @@ else if (getArrayItemClass().equals(String.class)) {
5967
}
6068

6169

62-
/** Return the array item type */
70+
/**
71+
* Return the array item type
72+
* @return the class type of array items
73+
*/
6374
@SuppressWarnings("unchecked")
6475
public Class<A> getArrayItemClass() {
6576
return (Class<A>) getDataType().getArrayItemClass();

metadata/src/main/java/com/metaobjects/field/FieldTypesMetaDataProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* <p>This provider registers all the concrete field types that extend field.base.
1212
* It calls the registerTypes() methods on each concrete field class to ensure proper registration.</p>
1313
*
14-
* <h3>Field Types Registered:</h3>
14+
* <strong>Field Types Registered:</strong>:
1515
* <ul>
1616
* <li><strong>field.string:</strong> String fields with pattern and length validation</li>
1717
* <li><strong>field.int:</strong> Integer fields with range validation</li>
@@ -29,7 +29,7 @@
2929
* <li><strong>field.class:</strong> Class fields for class type references</li>
3030
* </ul>
3131
*
32-
* <h3>Priority:</h3>
32+
* <strong>Priority:</strong>:
3333
* <p>Priority 10 - Runs after core base types (0) but before extensions (50+).
3434
* This ensures field.base is available before concrete field types are registered.</p>
3535
*

metadata/src/main/java/com/metaobjects/field/MetaField.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
* startup and then provide ultra-fast, thread-safe access to object properties throughout
3939
* the application lifetime.</p>
4040
*
41-
* <h3>Field as Metadata Pattern</h3>
41+
* <strong>Field as Metadata Pattern</strong>:
4242
* <p>Similar to {@code java.lang.reflect.Field}, MetaField serves dual purposes:</p>
4343
* <ul>
4444
* <li><strong>Metadata Descriptor</strong>: Defines field name, type, validation rules, display preferences</li>
@@ -47,7 +47,7 @@
4747
* <li><strong>Serialization Guide</strong>: Controls JSON/XML serialization behavior</li>
4848
* </ul>
4949
*
50-
* <h3>Usage Examples</h3>
50+
* <strong>Usage Examples</strong>:
5151
* <pre>{@code
5252
* // Loading Phase - Field definition
5353
* MetaObject userMeta = loader.getMetaObjectByName("User");
@@ -59,11 +59,11 @@
5959
* boolean isValid = emailField.validate(userObject); // Constraint validation
6060
* }</pre>
6161
*
62-
* <h3>Type Safety</h3>
62+
* <strong>Type Safety</strong>:
6363
* <p>MetaField is parameterized with the expected Java type {@code <T>} for compile-time
6464
* type safety. This prevents ClassCastException and provides IDE support for auto-completion.</p>
6565
*
66-
* <h3>Performance Characteristics</h3>
66+
* <strong>Performance Characteristics</strong>:
6767
* <ul>
6868
* <li><strong>Field Lookup</strong>: O(1) cached access from parent MetaObject</li>
6969
* <li><strong>Value Access</strong>: Direct reflection or optimized accessors</li>
@@ -230,6 +230,11 @@ public T getDefaultValue() {
230230
return defaultValue;
231231
}
232232

233+
/**
234+
* Converts the provided object to the field's value type
235+
* @param o the object to convert
236+
* @return the converted value of type T
237+
*/
233238
protected T convertDefaultValue(Object o) {
234239
if (!getValueClass().isInstance(o)) {
235240
// Convert as needed

metadata/src/main/java/com/metaobjects/key/KeyTypesMetaDataProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
* <p>This provider registers all the concrete key types that extend key.base.
1212
* It calls the registerTypes() methods on each concrete key class to ensure proper registration.</p>
1313
*
14-
* <h3>Key Types Registered:</h3>
14+
* <strong>Key Types Registered:</strong>:
1515
* <ul>
1616
* <li><strong>key.primary:</strong> Primary key definitions</li>
1717
* <li><strong>key.foreign:</strong> Foreign key relationships</li>
1818
* <li><strong>key.secondary:</strong> Secondary keys and indexes</li>
1919
* </ul>
2020
*
21-
* <h3>Priority:</h3>
21+
* <strong>Priority:</strong>:
2222
* <p>Priority 25 - Runs after validator types (20) but before object types (30).
2323
* This ensures key.base is available before concrete key types are registered.</p>
2424
*

metadata/src/main/java/com/metaobjects/loader/MetaDataLoader.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@
3636
* <strong>NOT</strong> a typical data access pattern but rather a metadata definition system
3737
* analogous to the Java reflection system.</p>
3838
*
39-
* <h3>ClassLoader Pattern Analogy</h3>
39+
* <strong>ClassLoader Pattern Analogy</strong>:
4040
* <table border="1">
41+
* <caption>ClassLoader Pattern Comparison</caption>
4142
* <tr><th>Java Reflection</th><th>MetaObjects Framework</th><th>Purpose</th></tr>
4243
* <tr><td>Class.forName()</td><td>MetaDataLoader.load()</td><td>Load definitions</td></tr>
4344
* <tr><td>Class.getFields()</td><td>MetaObject.getMetaFields()</td><td>Access structure</td></tr>
@@ -46,7 +47,7 @@
4647
* <tr><td>Thread-safe reads</td><td>Thread-safe metadata access</td><td>Concurrent operations</td></tr>
4748
* </table>
4849
*
49-
* <h3>Loading vs Runtime Phases</h3>
50+
* <strong>Loading vs Runtime Phases</strong>:
5051
* <pre>{@code
5152
* // LOADING PHASE - Happens once at startup
5253
* MetaDataLoader loader = new SimpleLoader("myLoader");
@@ -59,7 +60,7 @@
5960
* Object value = field.getValue(userObject); // Thread-safe read
6061
* }</pre>
6162
*
62-
* <h3>Performance Characteristics</h3>
63+
* <strong>Performance Characteristics</strong>:
6364
* <ul>
6465
* <li><strong>Startup Cost, Runtime Speed</strong>: Heavy initialization, ultra-fast runtime access</li>
6566
* <li><strong>Permanent References</strong>: Like Class objects, MetaData stays in memory until app shutdown</li>
@@ -71,7 +72,6 @@
7172
* @version 6.0.0
7273
* @since 1.0
7374
* @see com.metaobjects.loader.simple.SimpleLoader
74-
* @see com.metaobjects.loader.file.FileMetaDataLoader
7575
* @see MetaData
7676
*/
7777
public class MetaDataLoader extends MetaData implements LoaderConfigurable {

metadata/src/main/java/com/metaobjects/registry/MetaDataRegistry.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
* <li><strong>Thread-Safe:</strong> Optimized for read-heavy workloads with concurrent access</li>
3333
* </ul>
3434
*
35-
* <h3>Registration Examples:</h3>
35+
* <strong>Registration Examples:</strong>:
3636
*
3737
* <pre>{@code
3838
* // Register a field type with attributes

metadata/src/main/java/com/metaobjects/registry/MetaDataTypeProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
* from META-INF/services files. This enables dynamic type registration and extension
88
* without configuration files or static dependencies.</p>
99
*
10-
* <h3>Dependency-Based Loading:</h3>
10+
* <strong>Dependency-Based Loading:</strong>:
1111
* <p>Providers specify explicit dependencies instead of fragile priority numbers.
1212
* The system automatically resolves the dependency graph using topological sorting
1313
* to ensure proper load order.</p>
1414
*
15-
* <h3>Example Implementation:</h3>
15+
* <strong>Example Implementation:</strong>:
1616
* <pre>{@code
1717
* public class DatabaseMetaDataProvider implements MetaDataTypeProvider {
1818
*
@@ -35,7 +35,7 @@
3535
* }
3636
* }</pre>
3737
*
38-
* <h3>Dependency Benefits:</h3>
38+
* <strong>Dependency Benefits:</strong>:
3939
* <ul>
4040
* <li><strong>Explicit Dependencies:</strong> Clear what each provider needs</li>
4141
* <li><strong>Automatic Resolution:</strong> System calculates correct load order</li>
@@ -44,7 +44,7 @@
4444
* <li><strong>Maintainable:</strong> Easy to add new providers without priority conflicts</li>
4545
* </ul>
4646
*
47-
* <h3>Common Provider IDs:</h3>
47+
* <strong>Common Provider IDs:</strong>:
4848
* <ul>
4949
* <li><strong>core-types:</strong> Basic metadata.base type</li>
5050
* <li><strong>field-types:</strong> All concrete field types</li>

0 commit comments

Comments
 (0)