Skip to content

Commit

Permalink
Fix missing expecteds in classes implementing interfaces (the expected
Browse files Browse the repository at this point in the history
wasn't required before).
  • Loading branch information
pdvrieze committed May 19, 2024
1 parent c62b961 commit 0d431e7
Show file tree
Hide file tree
Showing 18 changed files with 150 additions and 91 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ import nl.adaptivity.xmlutil.dom2.Node
)
public actual object XmlStreaming : IXmlStreaming {

public override fun setFactory(factory: XmlStreamingFactory?) {
public actual override fun setFactory(factory: XmlStreamingFactory?) {
throw UnsupportedOperationException("Native does not support setting the factory")
}

Expand All @@ -53,29 +53,29 @@ public actual object XmlStreaming : IXmlStreaming {
throw UnsupportedOperationException("Cannot work")
}

public override fun newReader(input: CharSequence): XmlReader {
public actual override fun newReader(input: CharSequence): XmlReader {
return KtXmlReader(StringReader(input.toString()))
}

public override fun newReader(reader: Reader): XmlReader {
public actual override fun newReader(reader: Reader): XmlReader {
return newGenericReader(reader)
}

public override fun newGenericReader(input: CharSequence): XmlReader =
public actual override fun newGenericReader(input: CharSequence): XmlReader =
newGenericReader(StringReader(input.toString()))

public override fun newGenericReader(reader: Reader): XmlReader = KtXmlReader(reader)
public actual override fun newGenericReader(reader: Reader): XmlReader = KtXmlReader(reader)

@ExperimentalXmlUtilApi
override fun newReader(source: Node): XmlReader {
actual override fun newReader(source: Node): XmlReader {
@Suppress("DEPRECATION")
return DomReader(source)
}

override fun newWriter(): DomWriter = DomWriter()
actual override fun newWriter(): DomWriter = DomWriter()

@Suppress("DEPRECATION")
override fun newWriter(dest: Node): DomWriter = DomWriter(dest)
actual override fun newWriter(dest: Node): DomWriter = DomWriter(dest)

public fun newWriter(
output: Appendable,
Expand Down Expand Up @@ -117,7 +117,7 @@ public actual object XmlStreaming : IXmlStreaming {
return KtXmlWriter(writer, repairNamespaces, xmlDeclMode)
}

override val genericDomImplementation: DOMImplementation
actual override val genericDomImplementation: DOMImplementation
get() = SimpleDOMImplementation
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,18 +35,18 @@ public actual class CompactFragment : ICompactFragment {
@Suppress("DEPRECATION")
public actual class Factory : XmlDeserializerFactory<CompactFragment> {

override fun deserialize(reader: XmlReader): CompactFragment {
actual override fun deserialize(reader: XmlReader): CompactFragment {
return Companion.deserialize(reader)
}
}

override val isEmpty: Boolean
actual override val isEmpty: Boolean
get() = content.isEmpty()

override val namespaces: IterableNamespaceContext
actual override val namespaces: IterableNamespaceContext

@Transient
override val content: CharArray
actual override val content: CharArray

public actual constructor(namespaces: Iterable<Namespace>, content: CharArray?) {
this.namespaces = SimpleNamespaceContext.from(namespaces)
Expand All @@ -65,14 +65,14 @@ public actual class CompactFragment : ICompactFragment {
this(namespaces, content.toCharArray())


override fun serialize(out: XmlWriter) {
actual override fun serialize(out: XmlWriter) {
XMLFragmentStreamReader.from(this).use { reader ->
println("out.serialize(reader)")
out.serialize(reader)
}
}

override fun getXmlReader(): XmlReader = XMLFragmentStreamReader.from(this)
actual override fun getXmlReader(): XmlReader = XMLFragmentStreamReader.from(this)

override fun equals(other: Any?): Boolean {
if (this === other) return true
Expand All @@ -98,7 +98,7 @@ public actual class CompactFragment : ICompactFragment {
) { "${it.prefix} -> ${it.namespaceURI}" }
}

override val contentString: String
actual override val contentString: String
get() = content.concatToString()

public actual companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,10 @@
package nl.adaptivity.xmlutil

import nl.adaptivity.xmlutil.core.KtXmlWriter
import nl.adaptivity.xmlutil.core.impl.multiplatform.Reader
import nl.adaptivity.xmlutil.core.impl.multiplatform.Writer
import nl.adaptivity.xmlutil.dom2.DOMImplementation
import nl.adaptivity.xmlutil.dom2.Node


public expect fun IXmlStreaming.newWriter(
Expand Down Expand Up @@ -80,6 +83,25 @@ public expect object XmlStreaming : IXmlStreaming {
xmlDeclMode: XmlDeclMode = XmlDeclMode.None
): XmlWriter

public override val genericDomImplementation: DOMImplementation

public override fun newWriter(): DomWriter

@ExperimentalXmlUtilApi
public override fun newWriter(dest: Node): DomWriter

public override fun setFactory(factory: XmlStreamingFactory?)

public override fun newReader(input: CharSequence): XmlReader

public override fun newReader(reader: Reader): XmlReader

@ExperimentalXmlUtilApi
public override fun newReader(source: Node): XmlReader

public override fun newGenericReader(input: CharSequence): XmlReader

public override fun newGenericReader(reader: Reader): XmlReader
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,10 @@
package nl.adaptivity.xmlutil.util

import kotlinx.serialization.Serializable
import nl.adaptivity.xmlutil.IterableNamespaceContext
import nl.adaptivity.xmlutil.Namespace
import nl.adaptivity.xmlutil.XmlReader
import nl.adaptivity.xmlutil.XmlWriter

/**
* A class representing an xml fragment compactly.
Expand All @@ -35,8 +37,18 @@ public expect class CompactFragment : ICompactFragment {
public constructor(namespaces: Iterable<Namespace>, content: CharArray?)
public constructor(namespaces: Iterable<Namespace>, content: String)

public override val isEmpty: Boolean
public override val namespaces: IterableNamespaceContext
public override val content: CharArray
public override val contentString: String

public override fun serialize(out: XmlWriter)
public override fun getXmlReader(): XmlReader

@Suppress("DEPRECATION")
public class Factory() : nl.adaptivity.xmlutil.XmlDeserializerFactory<CompactFragment>
public class Factory() : nl.adaptivity.xmlutil.XmlDeserializerFactory<CompactFragment> {
public override fun deserialize(reader: XmlReader): CompactFragment
}

public companion object {
public fun deserialize(reader: XmlReader): CompactFragment
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,25 +51,25 @@ public actual interface XmlStreamingFactory
)
public actual object XmlStreaming : IXmlStreaming {
@ExperimentalXmlUtilApi
override fun newReader(source: Node2): XmlReader {
actual override fun newReader(source: Node2): XmlReader {
@Suppress("DEPRECATION")
return DomReader(source)
}

override fun newWriter(): DomWriter {
actual override fun newWriter(): DomWriter {
return DomWriter()
}

@Suppress("DEPRECATION")
override fun newWriter(dest: Node2): DomWriter = DomWriter(dest)
actual override fun newWriter(dest: Node2): DomWriter = DomWriter(dest)

@Deprecated("Does not work on Javascript except for setting null", level = DeprecationLevel.ERROR)
public override fun setFactory(factory: XmlStreamingFactory?) {
public actual override fun setFactory(factory: XmlStreamingFactory?) {
if (factory != null)
throw UnsupportedOperationException("Javascript has no services, don't bother creating them")
}

public override fun newReader(input: CharSequence): XmlReader {
public actual override fun newReader(input: CharSequence): XmlReader {
val str = when { // Ignore initial BOM (it parses incorrectly without exception)
input[0] == '\ufeff' -> input.subSequence(1, input.length)
else -> input
Expand All @@ -79,12 +79,12 @@ public actual object XmlStreaming : IXmlStreaming {
return DomReader(DOMParser().parseFromString(str, "text/xml").wrap() as Node2)
}

public override fun newReader(reader: Reader): XmlReader = KtXmlReader(reader)
public actual override fun newReader(reader: Reader): XmlReader = KtXmlReader(reader)

public override fun newGenericReader(input: CharSequence): XmlReader =
public actual override fun newGenericReader(input: CharSequence): XmlReader =
newGenericReader(StringReader(input))

public override fun newGenericReader(reader: Reader): XmlReader = KtXmlReader(reader)
public actual override fun newGenericReader(reader: Reader): XmlReader = KtXmlReader(reader)

public fun newWriter(
output: Appendable,
Expand Down Expand Up @@ -122,7 +122,7 @@ public actual object XmlStreaming : IXmlStreaming {
return WriterXmlWriter(writer, DomWriter(xmlDeclMode))
}

override val genericDomImplementation: DOMImplementation
actual override val genericDomImplementation: DOMImplementation
get() = DOMImplementationImpl
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,22 @@ public actual class CompactFragment : ICompactFragment {
@Suppress("DEPRECATION")
public actual class Factory : XmlDeserializerFactory<CompactFragment> {

override fun deserialize(reader: XmlReader): CompactFragment {
actual override fun deserialize(reader: XmlReader): CompactFragment {
return CompactFragment.deserialize(reader)
}
}

override val isEmpty: Boolean
actual override val isEmpty: Boolean
get() = contentString.isEmpty()


override val namespaces: IterableNamespaceContext
actual override val namespaces: IterableNamespaceContext

@Deprecated("In javascript this is not efficient, use contentString")
override val content: CharArray
actual override val content: CharArray
get() = CharArray(contentString.length) { i -> contentString[i] }

override val contentString: String
actual override val contentString: String

public actual constructor(namespaces: Iterable<Namespace>, content: CharArray?) {
this.namespaces = SimpleNamespaceContext.from(namespaces)
Expand All @@ -79,13 +79,13 @@ public actual class CompactFragment : ICompactFragment {
contentString = orig.contentString
}

override fun serialize(out: XmlWriter) {
actual override fun serialize(out: XmlWriter) {
XMLFragmentStreamReader.from(this).let { reader: XmlReader ->
out.serialize(reader)
}
}

override fun getXmlReader(): XmlReader = XMLFragmentStreamReader.from(this)
actual override fun getXmlReader(): XmlReader = XMLFragmentStreamReader.from(this)

override fun equals(other: Any?): Boolean {
if (this === other) return true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,10 @@ public actual object XmlStreaming : XmlStreamingJavaCommon(), IXmlStreaming {
return factory.newWriter(outputStream, encoding, repairNamespaces)
}

override fun newWriter(): DomWriter = DomWriter()
actual override fun newWriter(): DomWriter = DomWriter()

@Suppress("DEPRECATION")
override fun newWriter(dest: Node): DomWriter = DomWriter(dest)
actual override fun newWriter(dest: Node): DomWriter = DomWriter(dest)

@Deprecated("Use extension function on IXmlStreaming", level = DeprecationLevel.WARNING)
public actual fun newWriter(
Expand Down Expand Up @@ -149,12 +149,12 @@ public actual object XmlStreaming : XmlStreamingJavaCommon(), IXmlStreaming {
return KtXmlWriter(output, isRepairNamespaces, xmlDeclMode)
}

override val genericDomImplementation: DOMImplementation
actual override val genericDomImplementation: DOMImplementation
get() = DOMImplementationImpl

@Suppress("DEPRECATION")
@ExperimentalXmlUtilApi
override fun newReader(source: Node): XmlReader {
actual override fun newReader(source: Node): XmlReader {
return DomReader(source)
}

Expand All @@ -163,7 +163,7 @@ public actual object XmlStreaming : XmlStreamingJavaCommon(), IXmlStreaming {
return factory.newReader(inputStream, encoding)
}

override fun newReader(reader: Reader): XmlReader {
actual override fun newReader(reader: Reader): XmlReader {
return factory.newReader(reader)
}

Expand All @@ -172,7 +172,7 @@ public actual object XmlStreaming : XmlStreamingJavaCommon(), IXmlStreaming {
return factory.newReader(source)
}

public override fun newReader(input: CharSequence): XmlReader {
public actual override fun newReader(input: CharSequence): XmlReader {
return factory.newReader(input)
}

Expand All @@ -182,7 +182,7 @@ public actual object XmlStreaming : XmlStreamingJavaCommon(), IXmlStreaming {
)
public override fun newReader(input: String): XmlReader = newReader(input as CharSequence)

public override fun newGenericReader(input: CharSequence): XmlReader =
public actual override fun newGenericReader(input: CharSequence): XmlReader =
newGenericReader(StringReader(input.toString()))

public fun newGenericReader(input: String): XmlReader =
Expand All @@ -191,9 +191,9 @@ public actual object XmlStreaming : XmlStreamingJavaCommon(), IXmlStreaming {
public fun newGenericReader(inputStream: InputStream, encoding: String? = null): XmlReader =
KtXmlReader(inputStream, encoding)

public override fun newGenericReader(reader: Reader): XmlReader = KtXmlReader(reader)
public actual override fun newGenericReader(reader: Reader): XmlReader = KtXmlReader(reader)

public override fun setFactory(factory: XmlStreamingFactory?) {
public actual override fun setFactory(factory: XmlStreamingFactory?) {
_factory = factory
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,18 +34,18 @@ public actual class CompactFragment : ICompactFragment {
@Suppress("DEPRECATION")
public actual class Factory : XmlDeserializerFactory<CompactFragment> {

override fun deserialize(reader: XmlReader): CompactFragment {
actual override fun deserialize(reader: XmlReader): CompactFragment {
return Companion.deserialize(reader)
}
}

override val isEmpty: Boolean
actual override val isEmpty: Boolean
get() = content.isEmpty()

override val namespaces: IterableNamespaceContext
actual override val namespaces: IterableNamespaceContext

@Transient
override val content: CharArray
actual override val content: CharArray

public actual constructor(namespaces: Iterable<Namespace>, content: CharArray?) {
this.namespaces = SimpleNamespaceContext.from(namespaces)
Expand All @@ -65,7 +65,7 @@ public actual class CompactFragment : ICompactFragment {


@Throws(XmlException::class)
override fun serialize(out: XmlWriter) {
actual override fun serialize(out: XmlWriter) {
val reader = XMLFragmentStreamReader.from(this)
try {
out.serialize(reader)
Expand All @@ -74,7 +74,7 @@ public actual class CompactFragment : ICompactFragment {
}
}

override fun getXmlReader(): XmlReader = XMLFragmentStreamReader.from(this)
actual override fun getXmlReader(): XmlReader = XMLFragmentStreamReader.from(this)

override fun equals(other: Any?): Boolean {
if (this === other) return true
Expand All @@ -100,7 +100,7 @@ public actual class CompactFragment : ICompactFragment {
) { "${it.prefix} -> ${it.namespaceURI}" }
}

override val contentString: String
actual override val contentString: String
get() = String(content)

public actual companion object {
Expand Down
Loading

0 comments on commit 0d431e7

Please sign in to comment.