one.microstream.persistence.binary.java.lang.AbstractBinaryHandlerNativeArray Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of microstream-persistence-binary Show documentation
Show all versions of microstream-persistence-binary Show documentation
MicroStream Persistence Binary Data Extension
package one.microstream.persistence.binary.java.lang;
/*-
* #%L
* microstream-persistence-binary
* %%
* Copyright (C) 2019 - 2021 MicroStream Software
* %%
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* This Source Code may also be made available under the following Secondary
* Licenses when the conditions for such availability set forth in the Eclipse
* Public License, v. 2.0 are satisfied: GNU General Public License, version 2
* with the GNU Classpath Exception which is
* available at https://www.gnu.org/software/classpath/license.html.
*
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
* #L%
*/
import one.microstream.X;
import one.microstream.collections.types.XGettingSequence;
import one.microstream.collections.types.XImmutableSequence;
import one.microstream.persistence.binary.internal.AbstractBinaryHandlerCustom;
import one.microstream.persistence.types.PersistenceTypeDefinitionMemberFieldGeneric;
import one.microstream.persistence.types.PersistenceTypeDefinitionMemberFieldGenericComplex;
public abstract class AbstractBinaryHandlerNativeArray extends AbstractBinaryHandlerCustom
{
///////////////////////////////////////////////////////////////////////////
// static methods //
///////////////////
protected static final XImmutableSequence
defineElementsType(final Class componentType)
{
// admitted, this is a little crazy. But also very compact.
return
X.Constant(
Complex(
"elements",
CustomField(componentType, "element")
)
)
;
}
///////////////////////////////////////////////////////////////////////////
// constructors //
/////////////////
public AbstractBinaryHandlerNativeArray(
final Class arrayType ,
final XGettingSequence customFields
)
{
super(arrayType, customFields);
}
///////////////////////////////////////////////////////////////////////////
// override methods //
/////////////////////
@Override
public final boolean hasPersistedVariableLength()
{
return true;
}
@Override
public final boolean hasVaryingPersistedLengthInstances()
{
// note: java array might become truncatable in the future, so instance length might indeed change
return true;
}
}